在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(安卓)SlidingTabLayout+不可手动横向滑动的ViewPager
  4. Android在开机时自动启动一个应用程序
  5. Android(安卓)editText
  6. [android]初始化代码仓库时出现“OSError: [Errno 2] No such fi
  7. android实现截屏功能
  8. Android(安卓)DrawerLayout实现抽屉效果实例代码
  9. Android剪贴板

随机推荐

  1. Android(安卓)中的 LayoutInflater类
  2. Android(安卓)7.1 32位apk导致的系统库找
  3. Android(安卓)自定义打印log
  4. [Android]Activity生命周期之三大循环|五
  5. ubuntu12.04(64bit)编译android-3.4内核
  6. 使用 Android(安卓)studio的相关配置
  7. Android平台下简单Widget的搭建过程
  8. 20170524Android笔记
  9. iperf3 arm交叉编译补充
  10. Android音频开发之音频基本概念