Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android 如何設置3g網絡-APN設置

Android 如何設置3g網絡-APN設置

編輯:高級開發

一般用android系統的時候,我們使用wifi上網,但有時候我們也可以用3g上網,這裡就需要設置一下3G接入點。具體設置主要是通過改變數據庫數據來連接3g網絡

  這裡涉及到兩個URI,分別是apn列表uri:content://telephony/carriers,主apn的uri:content://telephony/carrIErs/preferapn,

  首先,向apn列表中插入一行,需要的屬性有name、apn和numeric。numeric要看不同的系統設置,我遇過的有的是46001,還有的是別的,沒記得太清楚。然後根據插入的id,把該行設置為主apn的行。這樣settings裡面就會自動去讀取。具體實現如下:

  Java代碼

  public void setApn(VIEw v) {

  final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();

  if (adapter.isEnabled()) {

  adapter.disable();

  } else {

  setMainAPN(getAPNId());

  }

  }

  private int getAPNId() {

  int id = -1;

  ContentValues values = new ContentValues();

  values.put("name", "suking");

  values.put("apn", "3gnet");

  values.put("numeric", "46001");

  ContentResolver resolver = getContentResolver();

  Cursor c = null;

  Uri newRow = resolver.insert(APN_URI, values);

  if (newRow != null) {

  c = resolver.query(newRow, null, null, null, null);

  int idIndex = c.getColumnIndex("_id");

  c.moveToFirst();

  id = c.getShort(idIndex);

  }

  if (c != null) {

  c.close();

  }

  return id;

  }

  private void setMainAPN(int id) {

  ContentResolver resolver = getContentResolver();

  ContentValues values = new ContentValues();

  values.put("apn_id", id);

  resolver.update(MAIN_APN, values, null, null);

  }

  public void setApn(VIEw v) {

  final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();

  if (adapter.isEnabled()) {

  adapter.disable();

  接上頁

  } else {

  setMainAPN(getAPNId());

  }

  }

  private int getAPNId() {

  int id = -1;

  ContentValues values = new ContentValues();

  values.put("name", "suking");

  values.put("apn", "3gnet");

  values.put("numeric", "46001");

  ContentResolver resolver = getContentResolver();

  Cursor c = null;

  Uri newRow = resolver.insert(APN_URI, values);

  if (newRow != null) {

  c = resolver.query(newRow, null, null, null, null);

  int idIndex = c.getColumnIndex("_id");

  c.moveToFirst();

  id = c.getShort(idIndex);

  }

  if (c != null) {

  c.close();

  }

  return id;

  }

  private void setMainAPN(int id) {

  ContentResolver resolver = getContentResolver();

  ContentValues values = new ContentValues();

  values.put("apn_id", id);

  resolver.update(MAIN_APN, values, null, null);

  }

  注意到,在設置apn網絡之前,首先是判斷藍牙適配器是否可用,如果可用需要把藍牙關閉。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved