1

第一个小背景为什么我需要编写这个应用程序。我的手机弄湿了,不幸的是屏幕现在无法工作(我什么都看不到,也不能按任何东西)。手机开启了飞行模式,所以我的照片无法同步。我无法使用 USB 数据线连接,因为它处于“仅充电状态”。USB调试已关闭,因此我无法连接adb以关闭飞行模式。但是隧道里有一点光。有WIFI工作。当它连接到我的网络时我听到声音,所以我知道它正在工作。我的想法是编写一个简单的应用程序来关闭飞行模式。我将使用 Play 商店从 PC 安装它,但我需要一种打开它的方法。我认为可以通过将此应用程序注册为某个系统调用的侦听器来完成。Play Store 可以将应用注册为侦听器而无需运行此应用吗?

你认为这一切都有可能吗?也许有人有其他想法?

谢谢!

4

2 回答 2

1

从 android 4.2 开始:这不再可能,除非应用程序由固件签名密钥签名或安装在系统分区上(通常由 root 设备用户)。(从这里复制)

安卓4.1及以下:

// read the airplane mode setting
boolean isEnabled = Settings.System.getInt(
      getContentResolver(), 
      Settings.System.AIRPLANE_MODE_ON, 0) == 1;

// toggle airplane mode
Settings.System.putInt(
      getContentResolver(),
      Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 : 1);

// Post an intent to reload
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", !isEnabled);
sendBroadcast(intent);

还将 WRITE_SETTINGS 权限添加到您的 android 清单

从这里复制

您可以使用此代码打开设置并告诉用户禁用飞行模式:

if (android.os.Build.VERSION.SDK_INT < 17){
    try{
        Intent intentAirplaneMode = new Intent(Settings.ACTION_AIRPLANE_MODE_SETTINGS);
        intentAirplaneMode.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intentAirplaneMode);
    }
    catch (ActivityNotFoundException e){
        Log.e("exception", e + "");
    }
}
else{
    Intent intent1 = new Intent("android.settings.WIRELESS_SETTINGS");
    intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent1);
}

这里应付

于 2016-01-20T15:56:35.597 回答
0

目前我不知道如何以编程方式构建应用程序来打开/关闭系统设置,但我可以告诉你的是,Play Store 中已经有一个应用程序可用,我觉得它做同样的事情。

你可以看看这个名为Trigger的应用程序。

https://play.google.com/store/apps/details?id=com.jwsoft.nfcactionlauncher&hl=en

您所要做的就是创建一个关闭飞行模式的任务,该任务可以通过 Wi-Fi 触发。

希望能帮助到你。

于 2016-01-20T16:04:51.137 回答