JAVA - Установите для предпочитаемого типа сети только LTE - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь создать приложение для Android, которое переключает мой тип сети на LTE Only.Ища в сети, я использую то, что я нашел, но это все еще не работает.

ФАЙЛ JAVA:

int NETWORK_MODE_LTE_ONLY = 11;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setPreferredNetworkType(NETWORK_MODE_LTE_ONLY);
    finish();
}

public boolean setPreferredNetworkType(int networkType) {
    Boolean result = false;
    try {
        TelephonyManager telephonyManager = (TelephonyManager)
                MainActivity.this.getSystemService(Context.TELEPHONY_SERVICE);
        final Method getPreferredNetworkType = telephonyManager.getClass().getDeclaredMethod("getPreferredNetworkType", int.class);
        final Method setPreferredNetworkType = telephonyManager.getClass().getDeclaredMethod("setPreferredNetworkType", int.class, int.class);
        final Method getSubId = telephonyManager.getClass().getDeclaredMethod("getSubId");
        getPreferredNetworkType.setAccessible(true);
        setPreferredNetworkType.setAccessible(true);
        getSubId.setAccessible(true);
        Integer currentNetworkType = (Integer) getPreferredNetworkType.invoke(telephonyManager, getSubId.invoke(telephonyManager));
        if (currentNetworkType != networkType) {
            setPreferredNetworkType.invoke(telephonyManager, getSubId.invoke(telephonyManager), networkType);
        } else {
            result = true;
        }
    } catch (SecurityException se) {
    } catch (Exception e) {
    }
    return result;
}

МАНИФЕСТ АНДРОИДА:

xmlns:tools="http://schemas.android.com/tools"
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" tools:ignore="ProtectedPermissions"/>

Есть идеи?

...