APN的使用

    最近项目要求代码实现APN的创建以及切换,翻阅许多网页,得到一个结论,Android4.0以上,APN权限被禁用,只有系统应用才可用,于是便想办法把自己的应用变成系统应用,通过Android Linux 命令终于将自己的APK嵌入到系统中(/system/app目录下),但是一运行自己的程序,就直接蹦了。

    下面把代码贴出来,请大侠指教,急急急!

    Main.Activity的oncreate中

String appName = getString(R.string.app_name);
		RootTools.debugMode = true;
		if(RootTools.isAccessGiven()){
			Toast.makeText(context, "授予权限成功", Toast.LENGTH_SHORT).show();
			List<String> commands = new ArrayList<String>();
			commands.add("su");
			commands.add("mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system");// 让分区可写
			if(RootTools.exists("/system/app/" + appName + ".apk")){
				commands.add("rm /system/app/" + appName + ".apk");
			}
			commands.add("cat /mnt/sdcard/360Download/Android.apk > /system/app/" + appName + ".apk");
			commands.add("mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system");// 还原分区属性,只读
			commands.add("exit");
			Command command = null;
			try {
				command = RootTools.getShell(true).add(new MyCommand(1, commands.toArray(new String[commands.size()])));
				command.waitForFinish();
			}  catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			if(command!=null){
				
			}
			ApnUtils.init(this);//自己写的新增APN,并切换APN
		}else{
			Toast.makeText(context, "授予权限失败", Toast.LENGTH_SHORT).show();
		}

上面RootTools来RootTools.jar,AndroidManifest.xml中已经添加了权限:

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

 

你可能感兴趣的:(APN的使用)