【问题标题】:Airplane mode toggle in Android 4.3Android 4.3 中的飞行模式切换
【发布时间】:2013-10-25 10:40:23
【问题描述】:

我在 android 4.3 版中遇到了通过代码控制飞行模式的问题。为此,我使用谷歌播放中提供的系统/应用程序移动应用程序将用户应用程序转换为系统。一旦用户启用飞行模式,后台服务可以控制检查飞行模式并将其重置为关闭状态并将广播更改发送到设备。在我在代码中实现的 sn-p 下方以保持飞行模式状态处于关闭状态。但它在 android 版本 4.3 中失败.它抛出一个称为“权限被拒绝”的异常。让我知道这些是否需要在清单中添加任何额外的权限,或者让我知道您对这些问题的修复建议。

try {
                    Settings.Global.putInt(context.getContentResolver(),
                            "airplane_mode_on", 0);
                    isAirplaneModeOn = isAirplaneModeOn(context);
                    Intent localIntent2 = new Intent(
                            "android.intent.action.AIRPLANE_MODE");
                    localIntent2.putExtra("state", isAirplaneModeOn);
                    context.sendBroadcast(localIntent2);
                } catch (Exception e) {
                    Log.v("TAG",
                            e.toString() + "\n" + e.getMessage());
                }

【问题讨论】:

    标签: android


    【解决方案1】:

    将应用程序移动到 /system/app 文件夹不会将其变成系统应用程序 - 它只是使应用程序可卸载,因为 /system 通常以只读方式安装。

    您尝试执行的操作需要完整的系统应用程序权限。您只能通过使用用于签署原始固件应用程序的相同密钥(平台密钥)签署您的应用程序来获得这些。换句话说,您需要访问构建您正在运行的 Android 版本的任何人,并让他们签署您的 APK。

    【讨论】:

      【解决方案2】:

      实际上你不能从 Android 4.2 开始。因为该设置已从 Settings.System 或 Settings.Secure 重新定位到此处。但是在以前的版本上它可以正常工作。

      http://developer.android.com/about/versions/android-4.2.html

      如果您的应用当前正在更改之前定义的设置 在 Settings.System(例如 AIRPLANE_MODE_ON)中,那么您应该期望 这样做将不再适用于运行 Android 4.2 或 如果将这些设置移至 Settings.Global,则更高。

      StackOverflow的相关问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多