2011-08-30 106 views
1

本地.apk文件安裝意圖當我在Android 2.1安裝其他應用程式的新APK,我只是用:上薑餅

Intent intent2 = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory()+"/Download/" + "app.apk")), "application/vnd.android.package-archive"); 
startActivity(intent2); 

它開闢了新的安裝對話框,我可以使用它。

現在,我嘗試薑餅2.3.3相同的代碼,當我開始這個安裝的意圖,它讓我選擇「選擇使用操作的應用程序」。有以下選擇:Google talk,video,videotalk,DRM,Market。

發生了什麼事?薑餅的安裝意圖是否改變了?如何在Android Gingerbread上製作新的安裝意圖?感謝

+0

嘗試使用適當的'File'構造函數而不是字符串連接創建'File'對象,看看是否有幫助。 – CommonsWare

+0

不,問題是,它看起來像Android 2.3的不知道對應的MIME類型... – Waypoint

+0

['PackageInstaller'確實](http://www.google.com/codesearch#cZwlSNS7aEw/packages/apps/PackageInstaller/ AndroidManifest.xml&exact_package = android&q = application/vnd.android.package-archive&type = cs) – CommonsWare

回答

1

的API參考says,有沒有在startActivity(意向)方法來施加任何改變。 ACTION_VIEW啓動默認活動來處理一段數據,或者要求選擇一個作爲默認值(如我所見)。如果您正在獲取要啓動的應用程序列表,則您沒有針對此類數據的默認操作。另外,請檢查您的設備是否已啓用非市場應用。

+0

嗨,謝謝你的回覆。我在模擬器和手機Galaxy S上嘗試它,仍然存在相同的問題。我有非市場應用程序安裝啓用,真的不知道是什麼問題 – Waypoint

+0

@Hmyzak,你可以嘗試使用ACTION_GET_CONTENT而不是當前操作? (不幸的是我沒有我周圍的任何東西來測試)。 –

+0

我已經嘗試過了,這是不是解決辦法,我得到ACTION_GET_CONTENT – Waypoint