Chinaunix首页 | 论坛 | 博客
  • 博客访问: 861034
  • 博文数量: 182
  • 博客积分: 1992
  • 博客等级: 上尉
  • 技术积分: 1766
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-18 11:49
文章分类

全部博文(182)

文章存档

2019年(1)

2016年(5)

2015年(29)

2014年(38)

2013年(21)

2012年(36)

2011年(52)

我的朋友

分类: 系统运维

2011-08-17 15:56:38


Intent filters for such actions are:

android:name=".PackageInstallerActivity">
>

android:name="android.intent.action.VIEW" />
android:name="android.intent.category.DEFAULT" />
android:scheme="content" />
android:scheme="file" />
android:mimeType="application/vnd.android.package-archive" />
>

>

 
android:name=".UninstallerActivity">
>

android:name="android.intent.action.VIEW" />
android:name="android.intent.action.DELETE" />
android:name="android.intent.category.DEFAULT" />
android:scheme="package" />
>

>

so if you want to install your .apk file from SD card – just write something like that:

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);

for uninstallation:

Uri packageURI = Uri.parse("package:com.android.myapp");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);

be aware that by default INSTALL_NON_MARKET_APPS option is disabled. You may want to check this option and show user friendly dialog before trying to install the app:

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);
}

阅读(811) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~