取消通过通知启动的运行时权限请求

时间:2016-07-09 14:52:49

标签: android permissions android-6.0-marshmallow

我需要从我的应用中的几个非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()); 停止后可以中止运行时权限对话框?

0 个答案:

没有答案