Подтвердить что ты не робот

Что мне нужно сделать, чтобы запустить диалог настроек интернет-телефона?

Я попытался установить мобильные данные. Но он просто работал только 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;
}

Но теперь я просто хочу запустить этот по умолчанию Диалог выбора мобильных устройств. Если у вас есть идея запустить этот диалог, дайте мне знать.. спасибо заранее.

.

4b9b3361

Ответ 1

Поддержка Multi SIM добавляется только в торрент файл android lollipop 5.1. До этого у разных производителей телефонов есть собственная пользовательская реализация для поддержки Multi SIM и соответствующих настроек. Следовательно, если вы нацеливаетесь на общее решение, этого достичь невозможно. Даже в версии 5.1 нет прямого намерения запустить эту настройку, но используя хак, который вы можете достичь, если производители должны использовать только решение Google, иначе это не сработает.

Ответ 2

Вам нужно начать настройку, как это сделать.

startActivityForResult(new Intent(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS), 0);

"Примечание" Существуют также настройки WIFI и более. Используйте его так, как вы хотите. как это

android.provider.Settings.ACTION_WIFI_SETTINGS

Ответ 3

Я попытался открыть интернет-настройки thriugh моим приложением, но по умолчанию функциональность открывает интернет только по умолчанию sim i.e. Sim 1. Вы должны перенаправить пользователя на экран настроек, используя намерение

Назначение намерений = новое намерение (Settings.ACTION_WIFI_SETTINGS);               startActivity (намерение);