Android设备可以使用addOverrideApn方法手动添加APN(接入点名称)配置。如果您想在完全托管(Fully Managed)设备上使用此方法,您需要在设备的设备策略(Device Policy)中配置一个名为「DEVICE_ADMIN_APN_SETTINGS」的权限,并调用DevicePolicyManager.setPermissionGrantState()方法将KEY_DEVICE_APN_SETTINGS权限授予您的应用。
以下是一些示例代码,演示如何在Android完全托管设备上使用addOverrideApn方法:
// 在您的Android设备策略中设置DEVICE_ADMIN_APN_SETTINGS权限
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); ComponentName deviceAdmin = new ComponentName(this, YourDeviceAdminReceiver.class); dpm.setPermissionGrantState(deviceAdmin, "com.android.settings.permission.DEVICE_ADMIN_APN_SETTINGS", DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED);
// 在您的应用程序中使用addOverrideApn方法手动设置APN
ContentResolver cr = getContentResolver(); ContentValues values = new ContentValues(); values.put(Telephony.Carriers.NAME, "My APN"); values.put(Telephony.Carriers.APN, "apn.example.com"); values.put(Telephony.Carriers.MMSC, "http://mms.example.com"); values.put(Telephony.Carriers.MMSPROXY, "mms.example.com"); values.put(Telephony.Carriers.MMSPORT, "8080"); Uri newRow = cr.insert(Telephony.Carriers.CONTENT_URI, values); // 这将插入一个名为“My APN”的新APN
//在您的Android设备策略中删除DEVICE_ADMIN_APN_SETTINGS权限
dpm.setPermissionGrantState(deviceAdmin, "com.android.settings.permission.DEVICE_ADMIN_APN_SETTINGS", DevicePolicyManager.PERMISSION_GRANT_STATE_DEFAULT);
上一篇:android网站源码