我正在尝试在 Android 上获取相机和微权限。我在 codenameone_library_required.properties 文件中添加了:
android.xpermissions=<uses-permission android:name="android.permission.CAMERA" android:required="true"/> <uses-permission android:name="android.permission.RECORD_AUDIO" android:required="true"/> <uses-permission android:name="android.permission.INTERNET" android:required="true"/>
这适用于旧版本的 Android,但不适用于预期的 Marshmallow。因此,我在开发人员指南的代号上读到,要在以后的 android 版本中请求权限,我必须以 sdk 23 为目标。事实上,我在构建提示中添加了:
android.targetSDKVersion=23
但不幸的是,这还不够,当我启动应用程序时,它不会请求权限。
我应该添加一些东西来请求权限吗?也许是“Display.getInstance().setProperty(...)”?
提前致谢!
最佳答案
如果我真的理解你的问题,你应该在运行时(android Marshmallow 及更高版本)像这样请求相机权限:
//to check if the user grant the permission before
if(ActivityCompat.checkSelfPermission(getActivity().getApplicationContext(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
//if it is not the case, request new permission
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.CAMERA},requestCode);
return;
}
//your camera code is here
在 Codename One 的情况下,正如@mina 所说,您找不到 ActivityCompat 类,因此请尝试这段代码:
if(!com.codename1.impl.android.AndroidNativeUtil.checkForPermission(Manifest.permission.READ_PHONE_STATE, "This should be the description shown to the user...")){
// you didn't get the permission, you might want to return here
}
// you have the permission, do what you need
关于android - 代号一棉花糖授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45546741/