Android M运行时权限问题
我刚刚想出了如何让android应用程序发布一个对话框,请求权限,并且只在用户点击allow时执行特定命令。但是在那之后,我一直坚持让应用程序重新启动,因为android的错误,除非重新启动,否则应用程序没有权限 像这样的代码似乎不起作用。该应用程序重新启动,但离开了原来的位置;保持设备在第一次启动时分配的相同首选项Android M运行时权限问题,android,android-studio,android-6.0-marshmallow,android-6.0.1-marshmallow,Android,Android Studio,Android 6.0 Marshmallow,Android 6.0.1 Marshmallow,我刚刚想出了如何让android应用程序发布一个对话框,请求权限,并且只在用户点击allow时执行特定命令。但是在那之后,我一直坚持让应用程序重新启动,因为android的错误,除非重新启动,否则应用程序没有权限 像这样的代码似乎不起作用。该应用程序重新启动,但离开了原来的位置;保持设备在第一次启动时分配的相同首选项 // Schedule start after 1 second PendingIntent pi = PendingIntent.getActivity(this
// Schedule start after 1 second
PendingIntent pi = PendingIntent.getActivity(this, 0, getIntent(), PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC, System.currentTimeMillis() + 10000, pi);
// Stop now
System.exit(0);
是否有其他方法重新启动应用程序,可以让手机告诉应用程序它有权做某些事情。在运行时异步工作中请求权限,因此您应该在请求权限的活动中覆盖
onRequestPermissionsResult()
。像这样:
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case Constants.YOUR_REQUEST_CODE: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted. do your stuff here
} else {
// Permission denied - Show a message to inform the user that this app only works
// with these permissions granted
}
return;
}
}
}
您无需重新启动应用程序即可获得权限。没有这样的安卓bug。你能发布更多关于为什么你认为存在这样一个bug的信息吗?不要重新启动应用程序,你只需要在运行时请求权限,并确保如果没有授予权限,它不会崩溃。我读过一些人的帖子说,应用程序在被允许后不更改权限的问题就是bug。进行此更改的唯一方法是完全重新启动应用程序。