我想在Android中安裝非市場應用程序。它是在下載:file:///mnt/sdcard/Download/App.apk
Android:安裝非市場應用程序
我正在做的事情是:
Intent promptInstall = new Intent(Intent.ACTION_VIEW).setData(Uri.parse(uriString)).setType("application/vnd.android.package-archive");
startActivity(promptInstall);
其中uriString中爲:file:///mnt/sdcard/Download/App.apk
。
但有一個例外:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW typ=application/vnd.android.package-archive }
編輯
我下載使用下載管理器應用程序:
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Request req = new DownloadManager.Request(Uri.parse(MY_PATH_TP_APK));
Request req.setTitle("Test")
.setDescription("Something useful.")
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "App.apk");
long enqueue = dm.enqueue(req);
下載後:
_receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
Query query = new Query();
query.setFilterById(enqueue);
Cursor c = dm.query(query);
if (c.moveToFirst()) {
int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
if (DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) {
String uriString = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
Intent promptInstall = new Intent(Intent.ACTION_VIEW)
.setData(Uri.parse(uriString))
.setType("application/vnd.android.package-archive");
startActivity(promptInstall);
}
}
}
}
};
如何解決?
的可能的複製[機器人:安裝的apk編程](http://stackoverflow.com/questions/4967669/android-install-apk-以編程方式) – jk2K