在源码中我们知道:
<activity android:name=".PackageInstallerActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="content" />
<data android:scheme="file" />
<data android:mimeType="application/vnd.android.package-archive" />
</intent-filter>
</activity>

<activity android:name=".UninstallerActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.DELETE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="package" />
</intent-filter>
</activity>

因为根据里面的权限我们可以 安装一个程序从sd卡:
String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);

卸载一个程序;
Uri packageURI = Uri.parse("package:com.android.myapp");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);

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

int result = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS, 0);
if (result == 0) {
// show some dialog here
// ...
// and may be show application settings dialog manually
Intent intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_SETTINGS);
startActivity(intent);
}

更多相关文章

  1. android Mainifest权限设置清单
  2. android 笔记 --- Android应用程序的权限列表
  3. 获得Android Linux系统增删文件的权限
  4. Android中HandlerThread的使用及源码解析
  5. 2、创建android应用程序
  6. Android 安装卸载程序
  7. Android 自定义View及其在布局文件中的使用示例(三):结合Android
  8. Android UI LinearLayout权限级别与TableLayout混合使用,

随机推荐

  1. 《Android超级用户工具箱箱》--更改andro
  2. 短视频运营应该学习什么?新媒体短视频入门
  3. Unity3d与Android通信
  4. Flutter事件分发源码剖析
  5. Android实战(四)------Myeclipse10搭建an
  6. android Matrix 操作
  7. Android Studio 友盟api实现apk多渠道打
  8. Android中Debuggable设置问题
  9. Android自定义对话框Dialog以及主题和样
  10. Android微信登录(shareSDK)注意事项