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