我需要从我的应用中的几个非UI组件访问位置。由于应用可能没有所需权限,因此我实施了How to request permissions from a service in Android Marshmallow答案中概述的解决方案:如果应用没有权限,则会显示通知。点击该通知将使用户变为空<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
,它会在顶部显示运行时权限对话框。
但是,我现在遇到以下问题:如果用户在没有做出选择的情况下解除该对话框(例如通过点击Home)并稍后调出我的应用程序的任何其他活动,则会重新显示运行时权限对话框而不是所需的活动。
这是我的通知代码:
Activity
有没有办法在 Intent permIntent = new Intent(context, PermissionRequestActivity.class);
permIntent.putExtra(Const.KEY_RESULT_RECEIVER, resultReceiver);
permIntent.putExtra(Const.KEY_PERMISSIONS, permissions);
permIntent.putExtra(Const.KEY_REQUEST_CODE, requestCode);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addParentStack(PermissionRequestActivity.class);
stackBuilder.addNextIntent(permIntent);
PendingIntent permPendingIntent =
stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setSmallIcon(notificationIcon)
.setContentTitle(notificationTitle)
.setContentText(notificationText)
.setOngoing(true)
.setAutoCancel(true)
.setWhen(0)
.setContentIntent(permPendingIntent)
.setStyle(null);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(requestCode, builder.build());
停止后可以中止运行时权限对话框?