我用下面的代碼在奧得河來獲得設備的首選APN:如果代理設置修改我的WebRequest獲得首選的APN失敗,因爲4.2
if (mCursor != null) {
try {
if (mCursor.moveToFirst()) {
// String name = mCursor.getString(0);
String proxy = mCursor.getString(1);
String port = mCursor.getString(2);
if (proxy != null) {
if (!proxy.equals("")) {
HttpHost proxys = new HttpHost(proxy, Integer.parseInt(port));
http.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxys);
}
}
}
} finally {
try {
mCursor.close();
} catch (Exception e) {
mCursor = null;
}
mCursor = null;
}
}
由於Android
DefaultHttpClient http = new DefaultHttpClient();
Cursor mCursor = ctx.getContentResolver().query(Uri.parse("content://telephony/carriers/preferapn"), new String[] { "name", "proxy", "port"},null, null, null);
4.2代碼由於安全異常而失敗,非用戶非Process擁有權限WRITE_APN_SETTINGS。 我加了 和 但沒有任何效果。 有誰知道如何解決這個問題?
對我來說就像是4.2的錯誤。閱讀apn設置應該仍然是允許的。可能值得在http://code.google.com/p/android/issues/ PS上提出一個錯誤,是什麼ROM?庫存4.2,4.2.1,CyanogenMod 10.1等? – SteelBytes