Android 4.2过滤掉CHANGE_CONFIGURATION权限?

Ced*_*tay 6 android

我遇到了一个奇怪的问题,我得到了一个允许在Android设备(字体大小设置器)上自由更改字体大小的应用程序.它使用内省来调用一些内部的Android apis.要进行此调用,需要以下权限:android.permission.CHANGE_CONFIGURATION.它在Android 4.0下运行起来就像一个魅力,在它不再起作用的情况下高达4.2.挖掘日志我发现我无法更新字体大小,因为它错过了这个权限.为了检查有效权限,我在检查与我的应用程序对应的PackageInfo时得到了这些权限

requestedPermissions = {java.lang.String[2]@830038778728}
    [0] = {java.lang.String@830038778760}"android.permission.CHANGE_CONFIGURATION"
    [1] = {java.lang.String@830038778896}"android.permission.WRITE_SETTINGS"
requestedPermissionsFlags = {int[2]@830038779016}
    [0] = 1
    [1] = 3
Run Code Online (Sandbox Code Playgroud)

有人对正在发生的事情或任何解决方法的想法有任何线索吗?非常感谢您阅读我.

每个请求,AndroidManifest.xml文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="fr.gatay.android.fss"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="14"/>
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
    <application android:label="@string/app_name" android:icon="@drawable/app_icon">
        <activity android:name=".MainActivity"
        android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

sit*_*uee 5

检查这篇文章 http://blog.sightidea.com/?p=44

您可以要求您的用户使用adb工具授予应用程序权限:

>adb shell
>pm grant com.yourapp.packagename android.permission.CHANGE_CONFIGURATION
Run Code Online (Sandbox Code Playgroud)


Com*_*are 3

至少目前,CHANGE_CONFIGURATION您的应用程序需要通过固件签名密钥进行签名或安装在系统分区上。您可以通过检查定义这些权限的框架清单来看到这一点。