我需要做什么才能启动 phone 互联网设置对话框?
What do I have to do to launch phone internet settings dialog?
我试过设置移动数据。但它只适用于 SIM 1
.
public static void setMobileData(Context context, boolean isEnabled) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
ConnectivityManager conman = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
@SuppressWarnings("rawtypes")
final Class conmanClass = Class.forName(conman.getClass().getName());
final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(conman);
final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
Class[] cArg = new Class[2];
cArg[0] = String.class;
cArg[1] = Boolean.TYPE;
Method setMobileDataEnabledMethod;
setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", cArg);
Object[] pArg = new Object[2];
pArg[0] = context.getPackageName();
pArg[1] = isEnabled;
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, pArg);
}
public static void setMobileData2(Context context, boolean isEnabled) throws NoSuchMethodException, ClassNotFoundException, IllegalAccessException, NoSuchFieldException, InvocationTargetException {
final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final Class conmanClass = Class.forName(conman.getClass().getName());
final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(conman);
final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, isEnabled);
}
public static boolean setMobileData3(Context context, boolean isEnable) {
boolean mobileDataAllowed = Settings.Secure.putInt(context.getContentResolver(), "mobile_data", isEnable?1:0);
return mobileDataAllowed;
}
但现在我只想启动默认的移动选择对话框。如果您有启动该对话框的任何想法,请告诉我。提前致谢。
.
你必须开始这样的设置意图。
startActivityForResult(new Intent(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS), 0);
'Note'
还有WIFI设置等等,想怎么探索就怎么探索。像这样
android.provider.Settings.ACTION_WIFI_SETTINGS
我曾尝试通过我的应用程序打开互联网设置,但默认功能是它仅打开默认 sim 卡即 Sim 1.You 必须使用 intent [=10] 将用户重定向到设置屏幕=]
意图意图=新意图(Settings.ACTION_WIFI_SETTINGS);
开始活动(意图);
多 SIM 卡支持仅在 android lollipop 5.1 及更高版本中添加。在此之前,不同的 phone 制造商有自己的自定义实现来支持多 SIM 卡和各自的设置。因此,如果您的目标是通用解决方案,则无法实现。即使在 5.1 上,也没有直接启动此特定设置的意图,但使用 hack 可以实现,前提是制造商应仅使用 Google 解决方案,否则它将无法工作。
我试过设置移动数据。但它只适用于 SIM 1
.
public static void setMobileData(Context context, boolean isEnabled) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
ConnectivityManager conman = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
@SuppressWarnings("rawtypes")
final Class conmanClass = Class.forName(conman.getClass().getName());
final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(conman);
final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
Class[] cArg = new Class[2];
cArg[0] = String.class;
cArg[1] = Boolean.TYPE;
Method setMobileDataEnabledMethod;
setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", cArg);
Object[] pArg = new Object[2];
pArg[0] = context.getPackageName();
pArg[1] = isEnabled;
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, pArg);
}
public static void setMobileData2(Context context, boolean isEnabled) throws NoSuchMethodException, ClassNotFoundException, IllegalAccessException, NoSuchFieldException, InvocationTargetException {
final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final Class conmanClass = Class.forName(conman.getClass().getName());
final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(conman);
final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, isEnabled);
}
public static boolean setMobileData3(Context context, boolean isEnable) {
boolean mobileDataAllowed = Settings.Secure.putInt(context.getContentResolver(), "mobile_data", isEnable?1:0);
return mobileDataAllowed;
}
但现在我只想启动默认的移动选择对话框。如果您有启动该对话框的任何想法,请告诉我。提前致谢。
.
你必须开始这样的设置意图。
startActivityForResult(new Intent(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS), 0);
'Note' 还有WIFI设置等等,想怎么探索就怎么探索。像这样
android.provider.Settings.ACTION_WIFI_SETTINGS
我曾尝试通过我的应用程序打开互联网设置,但默认功能是它仅打开默认 sim 卡即 Sim 1.You 必须使用 intent [=10] 将用户重定向到设置屏幕=]
意图意图=新意图(Settings.ACTION_WIFI_SETTINGS); 开始活动(意图);
多 SIM 卡支持仅在 android lollipop 5.1 及更高版本中添加。在此之前,不同的 phone 制造商有自己的自定义实现来支持多 SIM 卡和各自的设置。因此,如果您的目标是通用解决方案,则无法实现。即使在 5.1 上,也没有直接启动此特定设置的意图,但使用 hack 可以实现,前提是制造商应仅使用 Google 解决方案,否则它将无法工作。