Чтение APN в Android 4.2?

У меня проблема с чтением APN в Android v4.2 (Да, чтение, а не запись APNS) , он бросает исключение безопасности:

Нет разрешения на запись настроек APN: ни пользователь 10068, ни текущий процесс не имеют android.permission.WRITE_APN_SETTINGS.

Тот же код, используемый для работы на всех предыдущих платформах, знает ли кто-нибудь об этом?

Благодаря!

Это представляется преднамеренным изменением. Git commit, где они добавили эту защиту, включает следующий комментарий:

Поскольку БД может содержать корпоративные пароли, мы должны ее обеспечить. Использование того же разрешения, что и запись в БД, поскольку чтение потенциально может нанести ущерб как запись.

Вполне возможно, что ваша проблема заставит их рассмотреть возможность добавления отдельного разрешения на чтение, но по крайней мере пока это регрессия в 4.2.

Если вы хотите прочитать APN для Android 4.2 и более, это изменение. Я тестировал и это работа.

В Android 4.1 и ниже используйте это:

 Cursor c = getContentResolver().query(Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current"), null, null, null, null); 

А для Android 4.2 и выше используйте этот код:

 private static final String[] APN_PROJECTION = { Telephony.Carriers.TYPE, // 0 Telephony.Carriers.MMSC, // 1 Telephony.Carriers.MMSPROXY, // 2 Telephony.Carriers.MMSPORT // 3 }; 

И эта строка:

 final Cursor apnCursor =SqliteWrapper.query(context, this.context.getContentResolver(), Uri.withAppendedPath(Carriers.CONTENT_URI, "current"), APN_PROJECTION, null, null, null); 

SQLiteWrapperClass скрыт (найден этот class в Интернете)

 import android.database.sqlite.SqliteWrapper; 

Мой английский не совсем хорош, извините за это.

Вы можете прочитать настройки по умолчанию из /etc/apns-conf.xml:

 private boolean getSettingsFromApnsFile(Context context, String apnName) { FileReader reader = null; boolean sawValidApn = false; try { reader = new FileReader("/etc/apns-conf.xml"); XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser xpp = factory.newPullParser(); xpp.setInput(reader); TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE); String simOperator = telephonyManager.getSimOperator(); if (TextUtils.isEmpty(simOperator)) { logger.warn("unable to get sim operator - so unable to get mms config"); return false; } int eventType = xpp.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("apn")) { HashMap attributes = new HashMap(); for (int i=0; i 

У меня тоже ситуация, мое решение не имеет доступа к android_assets в AsyncTask. « Удостоверьтесь, что только ваш основной stream имеет разрешение на доступ к вашему ресурсу активов dir »,

У меня возникла проблема, когда я кодирую следующее:

 @Override protected void onResume() { super.onResume(); //mWebView.loadUrl("file:///android_asset/95306.html"); new LoadUrlTask().execute("file:///android_asset/95306.html"); } ... class LoadUrlTask extends AsyncTask { // progressDialog = new ProgressDialog(LoadActivity.this); @Override protected String doInBackground(String... strings) { mWebView.loadUrl(strings[0]); return ""; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //progressDialog.dismiss(); } @Override protected void onPreExecute() { super.onPreExecute(); //progressDialog.setMessage("loading..."); //progressDialog.show(); } } 

и я исправляю это:

 @Override protected void onResume() { super.onResume(); mWebView.loadUrl("file:///android_asset/95306.html"); //new LoadUrlTask().execute("file:///android_asset/95306.html"); } 

надеюсь, что это поможет!

  • Android - Firebase Quickstart Email / Password Auth demo не работает
  • Android Studio Exclude Class из сборки?
  • Постоянный куки для Android HttpClient
  • динамическая строка с использованием String.xml?
  • Полноэкранный режим в Android?
  • Как получить bitmap из URL-адреса в андроиде?
  • Ни пользователь 10102, ни текущий процесс не имеют android.permission.READ_PHONE_STATE
  • Какова роль content_main.xml в android studio 1.4?
  • Скорость выделения шатра
  • Добавление элементов управления яркостью экрана в приложение для Android
  • Android - Кнопки громкости, используемые в моем приложении
  • Давайте будем гением компьютера.