您的位置:首页 > 移动开发 > Android开发

Android系统新建APN代码

2014-02-15 23:31 399 查看
xml权限配置

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.lc.NewAPN"

android:versionCode="1"

android:versionName="1.0"

>

<uses-sdk android:minSdkVersion="8" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >

</uses-permission>

<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" >

</uses-permission>

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name" >

<activity

android:name=".NewAPNActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>

package com.lc.NewAPN;

import android.app.Activity;

import android.content.ContentResolver;

import android.content.ContentValues;

import android.database.Cursor;

import android.database.SQLException;

import android.net.Uri;

import android.os.Bundle;

import android.telephony.TelephonyManager;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

public class NewAPNActivity extends Activity {

/** Called when the activity is first created. */

private Button btnNewAPN;

private static Uri APN_LIST_URI = Uri.parse("content://telephony/carriers");

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

btnNewAPN=(Button)findViewById(R.id.btnNewAPN);

btnNewAPN.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

String apnName="myapn";

AddXFTApn(apnName);

boolean isAddSuccess= checkApnIsExist(apnName);

if(isAddSuccess){

Toast.makeText(NewAPNActivity.this, "新增APN成功", Toast.LENGTH_SHORT).show();

}else{

Toast.makeText(NewAPNActivity.this, "新增APN失败", Toast.LENGTH_SHORT).show();

}

}

});

}

public boolean checkApnIsExist(String ApnName){

int id = -1;

ContentResolver resolver = this.getContentResolver();

Cursor c = resolver.query(APN_LIST_URI, new String[] { "_id", "name", "apn" }, "apn like '%"+ApnName+"%'", null, null); //从apn列表中查找apn名称为myapn的apn信息

if (c != null && c.moveToNext()) {

id = c.getShort(c.getColumnIndex("_id")); //获取该apn的id信息

System.out.println("APN已经存在");

} else {

System.out.println("APN不存在");

return false;

}

return true;

}

protected String getSIMInfo() {

TelephonyManager iPhoneManager = (TelephonyManager) this.getSystemService(this.TELEPHONY_SERVICE);

return iPhoneManager.getSimOperator();

}

public int AddXFTApn(String apnName) {

System.out.println("添加一个新的apn ==> XFT APN");

int apnId = -1;

String NUMERIC = getSIMInfo();

if (NUMERIC == null) {

Toast.makeText(this, "不存在SIM卡", Toast.LENGTH_SHORT).show();

return -1;

}

ContentResolver resolver = this.getContentResolver();

ContentValues values = new ContentValues();

values.put("name","李川"); //apn中文描述

values.put("apn", apnName); //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;

// 获取新添加的apn的ID

try {

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

if (newRow != null) {

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

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

c.moveToFirst();

apnId = idindex;

}

} catch (SQLException e) {

e.printStackTrace();

}

if (c != null)

c.close();

return apnId;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: