//①通过market获取程序,这样必须保证market上的pname为最新的
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("market://search?q=pname:com.sdddz"));
startActivity(intent);
//②通过intent机制安装
Uri uri = Uri.fromFile(new File(fileName));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri,"application/vnd.android.package-archive");
startActivity(intent);
//③直接调用安装接口,安装权限:android.permission.INSTALL_PACKAGES
Uri mPackeageURI = Uri.fromFile(new File(Environment.getExternalStorageDirectory()+apkName));
int installFlag = 0;
PackageManager pm = getPackageManager();
try{
PackageInfo pi = pm.getPackageInfo(packageName,PackageManager.GET_UNINSTALLED_PACKAGES);
if(pi != null){
installFlag |= PackageManager.REPLACE_EXISTING_PACKAGE;
}
}catch(NameNotFoundException e){
e.printStrackTrace();
}
PackageInstallObserver observer = new PackageInstallObserver();
pm.installPackage(mPackageURI,observer,installFlag);
//④执行install命令 不附上-r会清楚原有数据(这个方法还没有搞清楚请,是需要在这个页面里执行命令吗)
install -r
am start ..
Runtime.exec(String[] args)
Class<?> execClass = Class.forName("android.os.Exec");
方法的①②③可用于下载APK更新自动安装使用,④还没试过。