我尝试请求LOCATION_HARDWARE读取USB的权限。
在德尔福,我尝试以下代码:
procedure getPermiss;
var
LPermissions: TJavaObjectArray<JString>;
begin
LPermissions := TJavaObjectArray<JString>.Create(1);
LPermissions.Items[0] := StringToJString('android.permission.LOCATION_HARDWARE');
try
TAndroidHelper.Activity.requestPermissions( LPermissions, 1);
except
on E : Exception do
begin
ShowMessage('Exception class name = '+E.ClassName+' ' +E.Message);
end;
end;
end;
但在安卓手机中的测试中显示此错误:"JNIFatal:未找到调用方法">
我看到活动的requestPermissions方法需要3个参数,而在delphi中只需要2个参数。
AndroidStudio 上的方法签名是requestPermssions(Context, String[], int(
在德尔福是requestPermissions(String[], int(
隐藏了第一个(上下文(
这种差异是问题吗?我该如何解决?
啧
这是因为requestPermissions( );
是在支持库(https://developer.android.com/reference/android/support/v4/app/ActivityCompat.html(的第24.1.0
版中引入的。
Delphi默认使用旧版本的支持库,因此没有requestPermissions( );
实现。 但是,您可以将Delphi使用的默认支持库替换为新的支持库,您可以在 https://github.com/Zeus64/alcinoe