代号一棉花糖授权

Codename one marshmallow authorization

我正在尝试获取 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 class,因此请尝试这段代码:

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