자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey RIO 에서의 문제
2018.12.04 19:16
RIO를 설치해서 테스트 중인데, 아래와 같은 문제가 발생하였습니다.
1. Form Transparent 기능이 동작하지 않습니다.
2. Bluetooth LE 장치를 찾을 수 없습니다.
Android 의 경우 새로운 LEVEL에 맞추어 앱을 등록하려면 RIO를 이용해야 하는데..
현재 서비스되고 있는 앱은 BLE를 이용하는 것이라, 위의 BLE 문제가 해결되지 않으면
앱을 업데이트할 수 없어, 서비스를 지속하기 힘든 상황이 됩니다.
이와 관련하여 해결방안이 나온 것이 있는지... 아시는 분 계시면 알려주시길 부탁드립니다.
감사합니다.
댓글 4
-
험프리
2018.12.06 10:32
-
지병철
2018.12.06 12:49
네, Form Transparent는 베를린에서는 안되다가 도쿄에서는 되었었구요.
이번 리오에서는 안됩니다.
BLE 의 경우 도쿄에서는 Windows 와 iOS 에서 Discovery 가 안되었고,
편법을 써서 iOS에서 Discovery 할 수 있게 작업을 하였었습니다.
이번 리오버전에서는 안드로이드에서 테스트 해보았는데, Discovery 되지 않았고,
편법도 적용할 수 없었습니다.
BLE와 Transparency 관련 샘플 첨부합니다.
-
험프리
2018.12.07 15:15
우선 2번 BLE 항목의 경우
10.3 리오에서 변경된 안드로이드 권한 모델이 적용되었습니다. 이제 권한을 요청하는 코드를 추가해야 합니다.
자세한 내용은 다음 링크에서 살펴보실 수 있습니다.
http://tech.devgear.co.kr/delphi_news/448925
BLEScanner 샘플을 실행해 보니 BLE 목록을 잘 가져오는 것을 확인했습니다.
C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\BLEScanner
1번항목은 새창의 Transparency 속성을 활성화 하니 폼의 배경이 검정색으로 표시되네요.
해당건은 프레임등의 다른 기술을 이용해 회피하는것이 어떨까 의견을 더합니다.
——————
답글이 도움이 되셨는지 다른 분들도 참고할 수 있도록 결과 댓글 부탁드립니다.
(결과 댓글이 없는 경우 다른 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-
지병철
2018.12.11 11:13
네, 샘플 내용대로 권한관련 부분 추가하여 BLE 부분 해결하였습니다.
감사합니다.
샘플위치 -> \Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\BLEScanner
작업한 소스는 다음과 같습니다.
procedure TfrmMain.StartBLEScan;
begin
BluetoothLE.Enabled := False;
BluetoothLE.Enabled := True;
{$IFDEF ANDROID}
FLocationPermission := JStringToString(TJManifest_permission.JavaClass.ACCESS_COARSE_LOCATION);
{$ENDIF}
PermissionsService.RequestPermissions([FLocationPermission],
procedure (const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)
begin
// 1 permissions involved: ACCESS_COARSE_LOCATION
if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
BluetoothLE.DiscoverDevices(TIME_Discover)
else
TDialogService.ShowMessage('블루투스 권한이 할당되지 않았습니다');
end,
procedure (const APermissions: TArray<string>; const APostRationaleProc: TProc)
begin
TDialogService.ShowMessage('블루투스 사용을 권한이 필요합니다',
procedure(const AResult: TModalResult)
begin
APostRationaleProc;
end)
end);
end;
Firemonkey RIO 에서의 문제
2018.12.04 19:16
RIO를 설치해서 테스트 중인데, 아래와 같은 문제가 발생하였습니다.
1. Form Transparent 기능이 동작하지 않습니다.
2. Bluetooth LE 장치를 찾을 수 없습니다.
Android 의 경우 새로운 LEVEL에 맞추어 앱을 등록하려면 RIO를 이용해야 하는데..
현재 서비스되고 있는 앱은 BLE를 이용하는 것이라, 위의 BLE 문제가 해결되지 않으면
앱을 업데이트할 수 없어, 서비스를 지속하기 힘든 상황이 됩니다.
이와 관련하여 해결방안이 나온 것이 있는지... 아시는 분 계시면 알려주시길 부탁드립니다.
감사합니다.
댓글 4
-
험프리
2018.12.06 10:32
-
지병철
2018.12.06 12:49
네, Form Transparent는 베를린에서는 안되다가 도쿄에서는 되었었구요.
이번 리오에서는 안됩니다.
BLE 의 경우 도쿄에서는 Windows 와 iOS 에서 Discovery 가 안되었고,
편법을 써서 iOS에서 Discovery 할 수 있게 작업을 하였었습니다.
이번 리오버전에서는 안드로이드에서 테스트 해보았는데, Discovery 되지 않았고,
편법도 적용할 수 없었습니다.
BLE와 Transparency 관련 샘플 첨부합니다.
-
험프리
2018.12.07 15:15
우선 2번 BLE 항목의 경우
10.3 리오에서 변경된 안드로이드 권한 모델이 적용되었습니다. 이제 권한을 요청하는 코드를 추가해야 합니다.
자세한 내용은 다음 링크에서 살펴보실 수 있습니다.
http://tech.devgear.co.kr/delphi_news/448925
BLEScanner 샘플을 실행해 보니 BLE 목록을 잘 가져오는 것을 확인했습니다.
C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\BLEScanner
1번항목은 새창의 Transparency 속성을 활성화 하니 폼의 배경이 검정색으로 표시되네요.
해당건은 프레임등의 다른 기술을 이용해 회피하는것이 어떨까 의견을 더합니다.
——————
답글이 도움이 되셨는지 다른 분들도 참고할 수 있도록 결과 댓글 부탁드립니다.
(결과 댓글이 없는 경우 다른 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-
지병철
2018.12.11 11:13
네, 샘플 내용대로 권한관련 부분 추가하여 BLE 부분 해결하였습니다.
감사합니다.
샘플위치 -> \Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\BLEScanner
작업한 소스는 다음과 같습니다.
procedure TfrmMain.StartBLEScan;
begin
BluetoothLE.Enabled := False;
BluetoothLE.Enabled := True;
{$IFDEF ANDROID}
FLocationPermission := JStringToString(TJManifest_permission.JavaClass.ACCESS_COARSE_LOCATION);
{$ENDIF}
PermissionsService.RequestPermissions([FLocationPermission],
procedure (const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)
begin
// 1 permissions involved: ACCESS_COARSE_LOCATION
if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
BluetoothLE.DiscoverDevices(TIME_Discover)
else
TDialogService.ShowMessage('블루투스 권한이 할당되지 않았습니다');
end,
procedure (const APermissions: TArray<string>; const APostRationaleProc: TProc)
begin
TDialogService.ShowMessage('블루투스 사용을 권한이 필요합니다',
procedure(const AResult: TModalResult)
begin
APostRationaleProc;
end)
end);
end;
1. Form Trasparent 관련해 샘플을 받아볼 수 있을까요?
이전 버전(도쿄)에서는 Form Transparent 설정 시 폼이 불투명처리 되었나요?
이번 10.3 리오에서는 안드로이드 Z-Order 및 네이티브 컨트롤 변경 등의 대규모 작업이 있었습니다. 내용을 조금 자세히 작성해 주시면 확인해보겠습니다.
2번항목의 경우 저희도 확인해보도록 하겠습니다.(제가 외부 일정이 있어 바로 확인은 어렵습니다.)
확인 후 답변 남기도록 하겠습니다.