安卓授权许可错误

4

当我试图将CHANGE_CONFIGURATION权限授予我的应用程序时,我遇到了这个错误:(Windows平台)

以下是CMD命令行错误:

/$ pm grant packageName android.permission.CHANGE_CONFIGURATION >

操作不允许:java.lang.SecurityException:包packageName尚未请求android.permission.CHANGE_CONFIGURATION权限

有人知道如何解决吗?

谢谢


1
欢迎来到SO。您不应该截取代码的屏幕截图,因为可以从终端中复制它们。不要懒惰,直接将它们写入问题中。 - Smittey
1
@Smittey 谢谢。我编辑了我的帖子。 - Vincent
2个回答

4

你是否在清单文件中申请了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。 - Dr.jacky
你使用的是哪个设备和 Android 版本? - cuihtlauac
1
这是一个Amlogic设置盒,通过Android 4.4.2。 - Dr.jacky

0

您必须请求授予权限。

在您的主活动的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);
    }
}

在你的Activity中重写它:

@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方法。我该怎么办? - Vincent
3
“CHANGE_CONFIGURATION” 是一个“签名|特权|开发”权限,使用“requestPermissions()”的应用程序将无法获得该权限。 - cuihtlauac

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接