![](/img/trans.png)
[英]How to run old build android application on new version of android?
[英]How can I build an android application with an old api (as 16)?
对于个人用途,我希望能够调用“Settings.System”(切换 4g,切换飞行模式……)。
我知道自从 API 17 以来这是不可能的,当 Settings.System 变为 Settings.Global... 所以,我用 API 16 启动了一个应用程序,但它仍然不起作用,我不允许切换飞行模式。
有什么提示可以解决这个问题吗? 还是 android 自由已被完全弃用?
编辑——这里有几行(kotlin)什么都不做:
try {
val isEnabled = Settings.System.getInt(
contentResolver,
Settings.System.AIRPLANE_MODE_ON,
0
) == 1
Settings.System.putInt(
contentResolver,
Settings.System.AIRPLANE_MODE_ON,
if (isEnabled) 0 else 1
)
val intent = Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED)
intent.putExtra("state", !isEnabled)
sendBroadcast(intent)
} catch (e: Exception) {
Toast.makeText(this, "exception:$e", Toast.LENGTH_LONG).show()
}
结果是:
exception:java.lang.SecurityException:
Permission Denial: not
allowed to send broadcast
android.intent.action.AIRPLANE_MODE
from pid=18122, uid=10335
您应该在build.gradle
文件中将targetSdkVersion
更改为 16。
如果targetSdkVersion
低于 Android 的系统版本,那么它会应用兼容模式(允许调用旧 API)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.