Настройте APN на Android 9 (уровень API 28)

Я пытаюсь использовать новый APN api

Код выглядит так

DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);

ComponentName deviceAdmin = new ComponentName(getApplicationContext(), DeviceAdmin.class);

ApnSetting apn = (new ApnSetting.Builder())
        .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT)
        .setApnName("sonme.real.apn.url")
        .setEntryName("Some Entry")
        .setCarrierEnabled(true)
        .build();

int re = dpm.addOverrideApn(deviceAdmin, apn);

dpm.setOverrideApnsEnabled(deviceAdmin, true);

Но кроме того факта, что меню APN становится недоступным (заблокировано для администратора - что нормально), APN не работает

пс

Я проверил с dpm.getOverrideApns(deviceAdmin); и добавленный apn присутствует... И еще попробовал установить setProtocol а также setRoamingProtocol

Есть идеи?

1 ответ

Решение

Наконец разобрался, чего не хватало

Похоже, что при добавлении apns с помощью API вы должны явно указать setProtocol, setRoamingProtocol и setOperatorNumeric, это обязательно, и он состоит из Telephony.Carriers.MCC + Telephony.Carriers.MNC (в моем случае мне пришлось заполнить MNC начальным нулем)

ApnSetting apn = (new ApnSetting.Builder())
        .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT)
        .setApnName("net.hotm")
        .setEntryName("HOT")
        .setCarrierEnabled(true) // enable it
        .setOperatorNumeric("425" + "07") // this is a must its consists from Telephony.Carriers.MCC + Telephony.Carriers.MNC, In my case, I had to pad the MNC with a leading zero
        .setProtocol(ApnSetting.PROTOCOL_IPV4V6) // this is a must
        .setRoamingProtocol(ApnSetting.PROTOCOL_IPV4V6) // this is a must
        .build();

int re = dpm.addOverrideApn(deviceAdmin, apn);

currApns =  dpm.getOverrideApns(deviceAdmin);

dpm.setOverrideApnsEnabled(deviceAdmin, true);

пс

MCC и MNC можно получить из TelephonyManager, getSimOperator() (getSimOperator().substring(3) and getSimOperator().substring(0, 3))

Другие вопросы по тегам