안 드 로 이 드 모 바 일 네트워크 열기/닫 기
소스 코드 에서 frameworks/base/core/java/android/provider/telephony.java 클래스 는 관련 URI 와 데이터베이스 필드 를 소개 합 니 다.content://telephony/carriers
필드 는 Telephony.자바 에서 찾 을 수 있 습 니 다.
APN 을 열 면 올 바른 APN 인 자 를 설정 할 수 있 습 니 다.
APN 을 닫 으 면 잘못된 인 자 를 설정 할 수 있 습 니 다.
우선 모 바 일 네트워크 연결 여 부 를 판단 합 니 다.
ConnectivityManager connectivity = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == State.CONNECTED){
true;
}else{
false;
}
열기/닫 기:
/**
* , APN
* @param context
*/
public static void openApn(Context context){
ArrayList<APNInfos> apnList = new ArrayList<APNInfos>();
apnList = getAPNList(context);
for(APNInfos apnInfos : apnList){
log("-openApn--getApn-----" + apnInfos.getApn());
}
for(APNInfos apnInfos : apnList){
ContentValues values = new ContentValues();
values.put("apn",APNMatchTools.matchAPN(apnInfos.getApn()));
values.put("type",APNMatchTools.matchAPN(apnInfos.getType()));
context.getContentResolver().update(Contents.apnUri, values, "_id=?", new String[]{apnInfos.getId()});
}
}
/**
* , APN
* @param context
*/
public static void closeApn(Context context){
ArrayList<APNInfos> apnList = new ArrayList<APNInfos>();
apnList = getAPNList(context);
for(APNInfos apnInfos : apnList){
log("--closeApn-getApn-----" + apnInfos.getApn());
}
for(APNInfos apnInfos : apnList){
ContentValues values = new ContentValues();
values.put("apn",APNMatchTools.matchAPN(apnInfos.getApn()) + "mdev");
values.put("type",APNMatchTools.matchAPN(apnInfos.getType()) + "mdev");
context.getContentResolver().update(Contents.apnUri, values, "_id=?", new String[]{apnInfos.getId()});
}
}
APN 목록 가 져 오기:
/**
* APN
* @param context
* @return
*/
public static ArrayList<APNInfos> getAPNList(Context context){
ArrayList<APNInfos> apnList = new ArrayList<APNInfos>();
String[] projection = {"_id,apn,type,current"};
Cursor cr = context.getContentResolver().query(Contents.apnUri, projection, null, null, null);
while(cr !=null && cr.moveToNext()){
if(cr.getString(cr.getColumnIndex("apn")).equals("")){
}else{
APNInfos apnInfos = new APNInfos();
apnInfos.setId(cr.getString(cr.getColumnIndex("_id")));
apnInfos.setApn(cr.getString(cr.getColumnIndex("apn")));
apnInfos.setType(cr.getString(cr.getColumnIndex("type")));
apnList.add(apnInfos);
}
}
if(cr != null){
cr.close();
}
return apnList;
}
APNMatchTools 클래스:
public class APNMatchTools {
public static String matchAPN(String currentName){
if(currentName == null || currentName.equals("")){
return "";
}
currentName = currentName.toLowerCase();//
if(currentName.startsWith(Contents.CMNET)){
return Contents.CMNET;
}else if(currentName.startsWith(Contents.CMWAP)){
return Contents.CMWAP;
}else if(currentName.startsWith(Contents.GNET_3)){
return Contents.GNET_3;
}else if(currentName.startsWith(Contents.GWAP_3)){
return Contents.GWAP_3;
}else if(currentName.startsWith(Contents.UNINET)){
return Contents.UNINET;
}else if(currentName.startsWith(Contents.UNIWAP)){
return Contents.UNIWAP;
}else if(currentName.startsWith("default")){
return "default";
}else{
return "";
}
}
}
그 속 몇 개의 변수
public static final String CMWAP = "cmwap"; // cmwap
public static final String CMNET = "cmnet"; // cmnet
public static final String GWAP_3 = "3gwap"; // 3gwap
public static final String GNET_3 = "3gnet"; // 3gnet
public static final String UNIWAP = "uniwap"; // uni wap
public static final String UNINET = "uninet"; // uni net
APNInfos 클래스
public class APNInfos {
private String id, apn ,type;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getApn() {
return apn;
}
public void setApn(String apn) {
this.apn = apn;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx websocket ip_해시 규칙프로젝트 를 다운로드 한 후 서로 다른 네트워크 에 각각 이 demo 프로젝트 를 배치 합 니 다. 프로젝트 에서 환경 변수 에 따라 시스템 변 수 를 설정 합 니 다. spring.profiles.active=de...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.