我尝试请求LOCATION_HARDWARE读取usb的权限。
在delphi中我尝试这段代码: 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;
但在Android手机上测试显示此错误: “JNIFatal:调用未找到的方法”
我看到Activity的requestPermissions方法需要3个参数,而在delphi中只需要2个。
AndroidStudio上的方法签名是 requestPermssions(Context,String [],int)
在delphi上 requestPermissions(String [],int)
隐藏第一个(上下文)
这有什么不同吗?我怎么解决?
韩国社交协会
答案 0 :(得分:0)
这是因为requestPermissions( );
是在支持库的版本24.1.0
中引入的(https://developer.android.com/reference/android/support/v4/app/ActivityCompat.html)
Delphi默认使用旧版本的支持库,因此未实现requestPermissions( );
。但是,您可以将delphi使用的默认支持库替换为新的支持库,您可以在https://github.com/Zeus64/alcinoe上看到示例