如何忘记Android M运行时权限对话框中的“永不再问”选项

时间:2015-11-09 13:08:44

标签: android android-6.0-marshmallow runtime-permissions

enter image description here

我想知道“Never again again”复选框布尔标志的存储位置以及如何清除其值?不一定是以编程方式,而是手动 - 通过设置,命令或某些工具。尝试清除应用程序数据,卸载,卸载和清除,尝试手动切换权限来回/关闭,尝试为模拟器设置更新的Marshmallow图像,但没有运气!

6 个答案:

答案 0 :(得分:8)

清除数据(设置>应用>您的应用>存储>清除数据)和卸载应用都会清除此标志的状态,同时清除与应用的运行时权限相关的所有其他内容。

此行为是在运行Android 6.0的Nexus 5上通过this sample app测试的。

我似乎记得在某个地方看到了手动选项,但我现在无法找到它。它可能是M Developer Preview版本中存在的东西,并且已经被拉到最终的6.0版本。

答案 1 :(得分:4)

你可以忘记"它通过清除应用程序设置中的数据。

修改 正如@me_所指出的,只是清除应用数据可能无法重置“不要再问”#34;在一些设备中的条件。在这种情况下,手动打开然后关闭应用程序设置的权限就行了。

但是,如果您要查找是否已设置权限不再请求,则可以使用onRequestPermissionsResult()方法以编程方式检查该权限。

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    for(String permission: permissions){
            if(ActivityCompat.shouldShowRequestPermissionRationale(this, permission)){
                //denied
            }else{
                if(ActivityCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED){
                    //allowed
                } else{
                    //set to never ask again
                    Log.e("set to never ask again", permission);
                }
            }
    }
}

PS:我在this回答时已经回答了完整的实施。

答案 2 :(得分:3)

找到它:

系统设置>应用>重置应用偏好设置(在菜单中)

enter image description here

答案 3 :(得分:0)

https://www.youtube.com/watch?v=F8hQfmYTEaQ

您应该在settings-> apps权限区域中手动启用和禁用权限。

我尝试了此页面上给出的所有建议。他们都没有工作。手动启用和禁用返回对话框。

点击上面的youtube帖子以确认这是正确的答案

答案 4 :(得分:0)

android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
    at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:7905)
    at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:1276)
    at android.view.View.requestLayout(View.java:22139)
    at android.view.View.requestLayout(View.java:22139)
    at android.view.View.requestLayout(View.java:22139)
    at android.view.View.requestLayout(View.java:22139)
    at android.view.View.requestLayout(View.java:22139)
    at android.view.View.requestLayout(View.java:22139)
    at android.view.View.requestLayout(View.java:22139)
    at android.support.v4.widget.DrawerLayout.requestLayout(DrawerLayout.java:1303)
    at android.view.View.requestLayout(View.java:22139)
    at android.view.View.requestLayout(View.java:22139)
    at android.view.View.requestLayout(View.java:22139)
    at android.view.View.requestLayout(View.java:22139)
    at android.view.View.requestLayout(View.java:22139)
    at android.view.View.requestLayout(View.java:22139)
    at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:360)
    at android.view.View.requestLayout(View.java:22139)
    at android.support.v7.widget.RecyclerView.requestLayout(RecyclerView.java:4202)
    at android.support.v7.widget.RecyclerView$RecyclerViewDataObserver.onChanged(RecyclerView.java:5286)
    at android.support.v7.widget.RecyclerView$AdapterDataObservable.notifyChanged(RecyclerView.java:11997)
    at android.support.v7.widget.RecyclerView$Adapter.notifyDataSetChanged(RecyclerView.java:7070)
    at com.vectorcoder.androidwoocommerce.fragments.All_Products.addProducts(All_Products.java:423)
    at com.vectorcoder.androidwoocommerce.fragments.All_Products.access$000(All_Products.java:69)
    at com.vectorcoder.androidwoocommerce.fragments.All_Products$1.onProducts(All_Products.java:157)
    at com.vectorcoder.androidwoocommerce.fragments.All_Products$10.run(All_Products.java:617)

答案 5 :(得分:0)

仅对我有用的解决方案是:

  1. 转到“应用程序权限”
  2. 启用和禁用所有权限

然后它将忘记“不再询问”选择

App permissions list

您可以在此视频中查看 https://www.youtube.com/watch?v=F8hQfmYTEaQ