Android M 运行 时间权限问题
Android M run time permission problems
我刚刚想出了如何让 android 应用程序 post 有一个请求权限的对话框,并且仅在用户点击允许时才执行特定命令。但我坚持在那之后让应用程序重新启动,由于 android 错误,除非重新启动,否则应用程序没有权限。
类似的代码似乎无法正常工作。该应用程序重新启动但离开了它所在的位置;保持设备在第一次启动时指定的相同偏好。
// 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);
有没有其他方法可以重新启动应用程序,可以让 phone 告诉应用程序它有权执行某些操作。
在 运行 时间请求权限异步工作,因此您应该在请求权限的 activity 覆盖 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;
}
}
}
我刚刚想出了如何让 android 应用程序 post 有一个请求权限的对话框,并且仅在用户点击允许时才执行特定命令。但我坚持在那之后让应用程序重新启动,由于 android 错误,除非重新启动,否则应用程序没有权限。
类似的代码似乎无法正常工作。该应用程序重新启动但离开了它所在的位置;保持设备在第一次启动时指定的相同偏好。
// 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);
有没有其他方法可以重新启动应用程序,可以让 phone 告诉应用程序它有权执行某些操作。
在 运行 时间请求权限异步工作,因此您应该在请求权限的 activity 覆盖 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;
}
}
}