我只是弄清楚如何让Android应用程序发布一个对话框,要求获得权限,并且只在用户点击允许时才执行特定命令。但是我之后仍然坚持让应用程序重新启动,由于Android的bug,除非重新启动,否则应用程序没有权限。
代码似乎并没有起作用。该应用程序重新启动,但它离开了它的位置;在第一次启动时保持设备分配的相同首选项。
// 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);
是否有一种不同的方式可以重新启动应用程序,这种方式可以让手机告诉应用程序它有权执行某些操作。
答案 0 :(得分:1)
在运行时请求权限异步工作,因此您应该在要求权限的活动中覆盖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;
}
}
}