由于Android对于APN的网络API没有公开,不过我们可以阅读源代码,然后进行数据库操作,系统会自动监听数据库的变化,从而实现开启或者关闭APN。
大家可以研究一下frameworks/base/core/Java/android/provider/Telephony.java这个类,比较重要的就是 URI 和数据库字段: content://telephony/carriers。字段可以在Telephony.java中找到。
1、当开启APN的时候,设置一个正确的移动或者联通的APN
2、关闭的时候设置一个错误APN就会自动关闭网络
复制到剪贴板 Java代码
package cc.mdev.Demo;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
/**
* Activity
* @author SinFrancis wong
* @site http://mdev.cc
* @wiki http://mdev.cc/wiki
* @since 2010-01-08
*/
public class Main extends Activity {
/** Called when the activity is first created. */
Uri uri = Uri.parse("content://telephony/carriers");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button open= (Button) findViewById(R.id.open);
Button close= (Button) findViewById(R.id.close);
open.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openAPN();
}
});
close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
closeAPN();
}
});
}
大家可以研究一下frameworks/base/core/Java/android/provider/Telephony.java这个类,比较重要的就是 URI 和数据库字段: content://telephony/carriers。字段可以在Telephony.java中找到。
1、当开启APN的时候,设置一个正确的移动或者联通的APN
2、关闭的时候设置一个错误APN就会自动关闭网络
复制到剪贴板 Java代码
package cc.mdev.Demo;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
/**
* Activity
* @author SinFrancis wong
* @site http://mdev.cc
* @wiki http://mdev.cc/wiki
* @since 2010-01-08
*/
public class Main extends Activity {
/** Called when the activity is first created. */
Uri uri = Uri.parse("content://telephony/carriers");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button open= (Button) findViewById(R.id.open);
Button close= (Button) findViewById(R.id.close);
open.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openAPN();
}
});
close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
closeAPN();
}
});
}