最终,我想创建一个应用程序,防止在用户正在通话时关闭蜂窝网络。但是,作为第一次迭代,我认为让用户手动选择哪些无线电设备不会被飞行模式关闭是有意义的。
我不想修改Android源代码或进行需要root权限的操作。我正在寻找标准框架内的解决方案。
我尝试解决这个问题的第一步是创建一个应用程序,以以下方式修改
System.AIRPLANE_MODE_RADIOS
:System.putString(getApplication().getContentResolver(), System.AIRPLANE_MODE_RADIOS, "");
根据API文档,这个常量是“需要在飞行模式下禁用的一组无线电”,但似乎飞行模式实际上并没有使用这个常量,在更改后仍然正常工作。
我的下一个尝试是创建一个广播接收器,接收AIRPLANE_MODE操作,并发送一个意图来撤销它:
Intent am = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", 0);
context.sendBroadcast(am);
这确实可以在激活飞行模式后关闭它。但是,如果用户正在通话中,通话仍将被中断(这很合理)。因此,这并不完全解决我的问题。
有人知道如何防止飞行模式禁用蜂窝网络吗?