android4.0之后,需要系统签名,并把apk放在system/app下面


                     


package com.lenovo.testapn;import android.app.Activity;import android.content.ContentResolver;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.telephony.TelephonyManager;import android.util.Log;import android.view.Menu;public class MainActivity extends Activity {private static final String TAG = "MainActivity";public static final Uri APN_URI = Uri.parse("content://telephony/carriers");// public static final Uri PREFERRED_APN_URI// =Uri.parse("PREFERRED_APN_URI  PREFERRED_APN_URI ");public static final Uri CURRENT_APN_URI = Uri.parse("content://telephony/carriers/preferapn");@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.d(TAG, "onCreate");checkAPN();// SetAPN(addAPN());}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}public void checkAPN() {// 检查当前连接的APNCursor cr = getContentResolver().query(APN_URI, null, null, null, null);Log.d(TAG, "cr" + cr);while (cr != null && cr.moveToNext()) {// if(cr.getString(cr.getColumnIndex("_id")))// APN idString id = cr.getString(cr.getColumnIndex("_id"));Log.d(TAG, "id" + id);//String apn_id= cr.getString(cr.getColumnIndex("apn_id"));////Log.d(TAG, "apn_id" + apn_id);// APN nameString apn = cr.getString(cr.getColumnIndex("apn"));Log.d(TAG, apn);// Toast.makeText(getApplicationContext(),// "当前 id:" + id + " apn:" + apn, Toast.LENGTH_LONG).show();}}// 新增一个cmnet接入点public int addAPN() {int id = -1;Log.d(TAG, "添加一个新的apn");String NUMERIC = getSIMInfo();Log.d(TAG, "NUMERIC" + NUMERIC);if (NUMERIC == null) {return -1;}ContentResolver resolver = this.getContentResolver();ContentValues values = new ContentValues();SIMCardInfo siminfo = new SIMCardInfo(MainActivity.this);// String user = siminfo.getNativePhoneNumber().substring(start);values.put("name", "专用APN"); // apn中文描述values.put("apn", "myapn"); // apn名称values.put("type", "default,supl");values.put("numeric", NUMERIC);values.put("mcc", NUMERIC.substring(0, 3));values.put("mnc", NUMERIC.substring(3, NUMERIC.length()));values.put("proxy", "");values.put("port", "");values.put("mmsproxy", "");values.put("mmsport", "");values.put("user", "");values.put("server", "");values.put("password", "");values.put("mmsc", "");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;}protected String getSIMInfo() {TelephonyManager iPhoneManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);return iPhoneManager.getSimOperator();}// 设置接入点public void SetAPN(int id) {ContentResolver resolver = this.getContentResolver();ContentValues values = new ContentValues();values.put("apn_id", id);resolver.update(CURRENT_APN_URI, values, null, null);// resolver.delete(url, where, selectionArgs)}}


更多相关文章

  1. android 如何获取当前运行的activity
  2. Android用户定位Google Map显示地图
  3. ScrollNumber 数字滚动
  4. android之获得当前连接wifi的名字
  5. 36个Android开发常用经典代码大全
  6. Android中文API(137) —— LocalSocket
  7. WindowManagerService添加View流程
  8. Android手势ImageView三部曲 第三部
  9. android检测当前网络是否可用

随机推荐

  1. ADROID2.2系统多国语言定制
  2. Android(安卓)Studio2.1.3之后在小米手机
  3. Android: ViewDragHelper tutorial
  4. android notification 示例
  5. 查找所有activity
  6. android开发环境安装ADT
  7. 使用线性布局LinearLayout实现类似计算器
  8. (转)10 Android(安卓)NDK Tips
  9. Android(安卓)6.0正常权限、危险权限以及
  10. 腾讯小视频坑 liteav