我正在创建一个Android应用程序,为紧急情况的用户提供一个位置。现在我希望应用程序在用户打开应用程序时启用移动数据..提前感谢
答案 0 :(得分:0)
除非您拥有root电话,否则我认为您无法以编程方式启用和禁用数据,因为为了这样做,我们必须包含MODIFY_PHONE_STATE
权限,该权限仅授予系统或签名应用。
setMobileDataEnabled()
方法不再可以通过反射调用。它可以通过反射从Android 2.1(API 7)到Android 4.4(API 19)进行调用,但是从Android 5.0及更高版本开始,即使使用root用户手机,setMobileDataEnabled()
方法也无法调用。
答案 1 :(得分:0)
实际上并没有任何可用的公共API。
对于 rooted phone ,请尝试this
对于非root电话,唯一要做的就是手动启用它:
protected void createNetErrorDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("You need internet connection for this app. Please turn on mobile network or Wi-Fi in Settings.")
.setTitle("Unable to connect")
.setCancelable(false)
.setPositiveButton("Settings",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent i = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
startActivity(i);
}
}
)
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MyActivity.this.finish();
}
}
);
AlertDialog alert = builder.create();
alert.show();
}