6

我遇到了一个奇怪的问题,我有一个应用程序允许自由更改 Android 设备上的字体大小(字体大小设置器)。它使用自省来调用一些内部 Android api。要执行此调用,它需要以下权限: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

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

根据请求,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>
4

3 回答 3

5

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

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

>adb shell
>pm grant com.yourapp.packagename android.permission.CHANGE_CONFIGURATION
于 2015-02-06T03:46:36.057 回答
4

自 Android v4.2 起,CHANGE_CONFIGURATION 权限的保护级别已从“危险”(v4.1 及以下)更改为“系统|签名|开发”(v4.2)

第 3 部分应用程序似乎无法在 Android 4.2+ 设备上获得 CHANGE_CONFIGURATION 权限。:-(

于 2012-11-25T08:50:09.667 回答
2

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

于 2012-11-18T13:23:38.140 回答