我提出一个应用程序,它允许自动添加的权限为Android 6.0和Android M.我的权限包括如何在Android 6中添加多个权限并在模拟器中测试?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
我用下面的代码添加权限的Android 6.0版本
public static final int REQUEST_ID_MULTIPLE_PERMISSIONS = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(checkAndRequestPermissions()) {
Log.d ("TAG", "Permissions are granted");
}
}
private boolean checkAndRequestPermissions() {
if (Build.VERSION.SDK_INT >= 23) {
int permissionSTORAGE = ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
int permissionRECORDAUDIO = ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO);
List<String> listPermissionsNeeded = new ArrayList<>();
if (permissionSTORAGE != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (permissionRECORDAUDIO != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.RECORD_AUDIO);
}
if (!listPermissionsNeeded.isEmpty()) {
ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), REQUEST_ID_MULTIPLE_PERMISSIONS);
return false;
}
return true;
}
else
return true;
}}
我在上面的代码中有两个问题。
- 是否可以检查模拟器(Android M,SDK 24)中的权限?
- 我的实现是否正确?我没有真正的设备,所以我无法确认上面的代码。
其确认的工作在这里有看http://stackoverflow.com/questions/38141523/directory-creation-not-working-in-marshmallow-android/38141778#38141778 –
检查本指南 - https:// inthecheesefactory。 com/blog/things-you-need-to-know-about-android-m-permission-developer-edition/en - 不确定模拟器是否正确,但我已在真实设备上进行了测试。应该同样工作 – Tasos