最近研究了一下静默安装和卸载apk,我只做了一个简单的静默安装与卸载
具体的研究可以参照我学习的网址在文章最后
下面是我自己的参照别人的文章试出来的代码可以用的。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); String f = Environment.getExternalStorageDirectory().getPath();
f = f + "/apk/aa.apk";
System.out.println(f);
installApk(this, f); String pn = getapkpackagename(f);
uninstallApk(this, pn);
} // 获取apk文件的信息
private String getapkpackagename(String f) {
String filePath = f;
PackageManager packageManager = getPackageManager();
PackageInfo packageInfo = packageManager.getPackageArchiveInfo(filePath, PackageManager.GET_ACTIVITIES); System.out.println(packageInfo.toString());
return packageInfo.packageName;
} // 卸载apk
public static void uninstallApk(Context context, String packageName) {
Uri uri = Uri.parse("package:" + packageName);
Intent intent = new Intent(Intent.ACTION_DELETE, uri); context.startActivity(intent);
}
// 安装apk
public static void installApk(Context context, String fileName) { Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.parse("file://" + fileName), "application/vnd.android.package-archive");
context.startActivity(intent);
}
还有添加一下权限
<!-- 安装、卸载相关权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.DELETE_PACKAGES" />
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
<!-- 安装、卸载相关权限 -->
我自己测试发现安装和卸载都可以用。