在Android安装卸载程序的源码中我们知道:

Java代码
  1. <activityandroid:name=".PackageInstallerActivity">
  2. <intent-filter>
  3. <actionandroid:name="android.intent.action.VIEW"/>
  4. <categoryandroid:name="android.intent.category.DEFAULT"/>
  5. <dataandroid:scheme="content"/>
  6. <dataandroid:scheme="file"/>
  7. <dataandroid:mimeType="application/vnd.android.package-archive"/>
  8. </intent-filter>
  9. </activity>
  10. <activityandroid:name=".UninstallerActivity">
  11. <intent-filter>
  12. <actionandroid:name="android.intent.action.VIEW"/>
  13. <actionandroid:name="android.intent.action.DELETE"/>
  14. <categoryandroid:name="android.intent.category.DEFAULT"/>
  15. <dataandroid:scheme="package"/>
  16. </intent-filter>
  17. </activity>

因为根据里面的权限我们可以 从sd卡安装一个程序:

Java代码
  1. StringfileName=Environment.getExternalStorageDirectory()+"/myApp.apk";
  2. Intentintent=newIntent(Intent.ACTION_VIEW);
  3. intent.setDataAndType(Uri.parse("file://"+filePath),"application/vnd.android.package-archive");
  4. //或者
  5. //intent.setDataAndType(Uri.fromFile(newFile(fileName)),"application/vnd.android.package-archive");
  6. startActivity(intent);

Android安装卸载程序的操作中要想卸载一个程序;

Java代码
  1. UripackageURI=Uri.parse("package:com.android.myapp");
  2. IntentuninstallIntent=newIntent(Intent.ACTION_DELETE,packageURI);
  3. startActivity(uninstallIntent);

默认是不支持安装非市场程序的 因此判断一下

Java代码
  1. intresult=Settings.Secure.getInt(getContentResolver(),Settings.Secure.INSTALL_NON_MARKET_APPS,0);
  2. if(result==0){
  3. //showsomedialoghere
  4. //...
  5. //andmaybeshowapplicationsettingsdialogmanually
  6. Intentintent=newIntent();
  7. intent.setAction(Settings.ACTION_APPLICATION_SETTINGS);
  8. startActivity(intent);
  9. }

更多相关文章

  1. Pycharm安装PyQt5的详细教程
  2. Android代码混淆打包
  3. Android(安卓)新手摸石头过河
  4. Android(安卓)获取已经安装的程序
  5. android: 大量开源项目源代码分享
  6. 史上最全!最经典!最无私的Android资料(书籍+代码)分享-不要积分
  7. 用layer-list一次加载多个层次图片
  8. Android(安卓)利用canvas画各种图形(点、直线、弧、圆、椭圆、文
  9. 圆形button

随机推荐

  1. 真工程师:20块钱做了张「名片」,可以跑Linu
  2. NFS上的数据通过inotify或者sersync软件
  3. 【vue】父子组件传值
  4. 1:2,李世石最后一战被AI击败,唯一战胜过Alp
  5. 在Windows Server Core 2019 上安装SQL S
  6. 程序员想搞点副业太难了:谷歌已将个人项目
  7. 大师也作弊,昔日Kaggle Grandmaster面临终
  8. 阁下可知文言编程之精妙?CMU本科生开源文
  9. 拯救单身狗:这个对象生成器帮你看看未来对
  10. 深度学习可以不要乘法,北大、华为诺亚新论