3
A
回答
10
您可以使用uri content://telephony/carriers/preferapn
以編程方式查詢和設置首選APN。要設置新的首選APN,您必須傳入現有APN條目的數據庫ID。 (:setPreferredApn(context, "Giffgaff");
如)
public static final Uri APN_TABLE_URI = Uri.parse("content://telephony/carriers");
public static final Uri APN_PREFER_URI = Uri.parse("content://telephony/carriers/preferapn");
public static boolean setPreferredApn(Context context, String name) {
boolean changed = false;
String columns[] = new String[] { Carriers._ID, Carriers.NAME };
String where = "name = ?";
String wargs[] = new String[] {name};
String sortOrder = null;
Cursor cur = context.getContentResolver().query(APN_TABLE_URI, columns, where, wargs, sortOrder);
if (cur != null) {
if (cur.moveToFirst()) {
ContentValues values = new ContentValues(1);
values.put("apn_id", cur.getLong(0));
if (context.getContentResolver().update(APN_PREFER_URI, values, null, null) == 1)
changed = true;
}
cur.close();
}
return changed;
}
我想我應該補充一點,你需要WRITE_APN_SETTINGS許可,並需要進口android.provider.Telephony和Android,如果你在APN的顯示名稱通過下面的函數可以做到這一點。 provider.Telephony.Carriers
更新4.0+
該工廠成爲了Android 4.0(ICS)的無法釋放。啓用WRITE_APN_SETTINGS權限不會允許您再設置APN。有關相關鏈接,請參閱this question。在API page它現在明確地聲明此權限不是爲了外部使用,並且在內部執行。
-1
我不認爲有一種方法,即使有一種方法,運營商可以用軟件更新將其清除。此外,對於美國的一些運營商,例如AT & T,使用特定的APN可提供特定的功能,例如獲取該用戶的用戶號碼(其唯一的ID,而不是電話號碼)。因此,強制執行此更改可能不是一個好主意,因爲它會影響手機上安裝的衆多其他應用程序。
相關問題
- 1. 無法刪除Android中的APN
- 2. 在Android 4.2中閱讀APN?
- 3. Android中的APN設置
- 4. 設置默認APN
- 5. InsertAPN()方法不寫入APN設置 - Android 2.3.6
- 6. 強制在Android中使用APN DNS
- 7. 在Android上激活多個APN
- 8. 從設備中讀取APN Android 6.0
- 9. 在Android上編寫APN設置4.4
- 10. Android:通過代碼更改APN設置
- 11. Cpanel APN配置
- 12. APN的NodeJS模塊無法在Ubuntu上
- 13. node.js apn無法生成令牌
- 14. 無法獲取node-apn來連接
- 15. 如何獲取APN名稱
- 16. iDevice未註冊APN
- 17. 蟒蛇:APN的SSLError
- 18. APN設置/參數
- 19. APN設置更改
- 20. 黑莓APN設置
- 21. 刪除生產APN
- 22. houston apn push不會執行任何操作(無錯誤)
- 23. Android無法執行dex
- 24. Android loadurl無法執行javascript
- 25. 如何閱讀APN設置4.2
- 26. 無法執行android的方法:onClick
- 27. 無法執行android的方法:onClick
- 28. 無法執行android的方法:onClick
- 29. android AsyncTask - 無法執行onPostExecute方法
- 30. 的APN通知失敗
感謝您的解決方案。這是否意味着在運行此代碼後,設備上的所有應用程序都將使用特定的APN? – Paz
是的。這將設置設備首選APN。 – patthoyts
感謝您的支持!你製作了哪個giffgaff應用程序? –