【问题标题】:Android grant permission errorAndroid授予权限错误
【发布时间】:2015-11-09 09:40:31
【问题描述】:

当我要向我的应用程序授予 CHANGE_CONFIGURATION 权限时出现此错误:(是 Windows 平台)

CMD命令行错误如下:

/$ pm grant packageName android.permission.CHANGE_CONFIGURATION >

操作不被允许:java.lang.SecurityException: Package packageName has not request permission android.permission.CHANGE_CONFIGURATION

有人知道怎么解决吗?

谢谢

【问题讨论】:

  • 欢迎来到 SO。你不应该截取你的代码。可以将它们复制出终端。不要偷懒,直接写到问题里。
  • @Smittey 谢谢。我编辑了我的帖子。

标签: android permissions adb robotium


【解决方案1】:

您是否在 Manifest 中请求了CHANGE_CONFIGURATION

<uses-permission android:name="android.permission.CHANGE_CONFIGURATION">    

您使用的是哪个设备和 Android 版本?我已经使用 Android 6 (MRA58N) 在 Nexus 6 上测试了 pm grant 命令,它有效。

【讨论】:

  • 操作不允许:java.lang.SecurityException:包com.google.android.gms没有请求权限android.permission.CHANGE_CONFIGURATION
  • 您使用的是哪个设备和 Android 版本?
  • 这是一个 amlogic 设置盒,通过 Android 4.4.2
【解决方案2】:

您必须请求被授予的权限。

在您的主要活动的 OnCreate 方法中:

// New permissions model test
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
    if (checkSelfPermission(Manifest.permission.CHANGE_CONFIGURATION) != PackageManager.PERMISSION_GRANTED)
    {
        String [] permissions = new String[1];
        permissions[0] = Manifest.permission.CHANGE_CONFIGURATION;

        requestPermissions(permissions, 7001);
    }
}

并在您的活动中覆盖它:

@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
{
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if(grantResults[0] == 0)    // Permission was granted
        yourJob.start();    
}

当然,也可以在 manifest.xml 中声明

【讨论】:

  • 但我只有 apk 文件。我目前正在处理的是自动化测试代码。没有 onCreate 方法。我该怎么办?
  • CHANGE_CONFIGURATION 是一个signature|privileged|development 权限,它不会被授予使用requestPermissions() 的应用程序。
猜你喜欢
  • 2011-05-31
  • 2016-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-29
  • 2019-03-05
相关资源
最近更新 更多