我想知道是否有人可以指出一个很好的来源,解释如何使用Android SDK更改电话操作符相关设置,如APN,E911 CMAS.我注意到Telephony Manager类是CarrierConfigManager,但不确定哪个会提供读/写访问权限,哪个是最好的,或者有更好的方法.
解决方法:
您可以使用Telephony.Carriers提供的内容提供商更改APN.
以下是我用来创建新APN的代码.
public void saveApn(Apn newApn) {
String name = checkNotSet(newApn.getName());
String apn = checkNotSet(newApn.getApn());
String mcc = checkNotSet(newApn.getMcc());
String mnc = checkNotSet(newApn.getMnc());
ContentValues values = new ContentValues();
values.put(Telephony.Carriers.NAME, name);
values.put(Telephony.Carriers.APN, apn);
values.put(Telephony.Carriers.MCC, mcc);
values.put(Telephony.Carriers.MNC, mnc);
values.put(Telephony.Carriers.NUMERIC, mcc + mnc);
mContext.getContentResolver().insert(Telephony.Carriers.CONTENT_URI, values)
}
并设置为首选APN
private void setAsPreferedApn(int apnId) {
ContentValues values = new ContentValues();
values.put("apn_id", String.valueOf(apnId));
getContentResolver().update(Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "preferapn"), values, null, null);
}