我需要爲特定MIME類型設置默認應用程序。我知道如何清除默認設置,但我需要在未打開應用程序的情況下提示用戶。提示默認活動而不實際打開活動
PackageManager p = mContext.getPackageManager();
ComponentName cN = new ComponentName(mContext, FakeDownloadActivity.class);
p.setComponentEnabledSetting(cN, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
Intent selector = new Intent(Intent.ACTION_DEFAULT);
selector.addCategory(Intent.CATEGORY_DEFAULT);
selector.setType(mimeType);
mContext.startActivity(selector);
p.setComponentEnabledSetting(cN, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
上面的代碼啓動活動而不是隻選擇默認活動。它的作用是啓用假活動,然後禁用它。這會導致Select Default App對話框在下次調用時顯示。我只想僅選擇默認活動。
Quote:'不好的一面是,你只能爲自己的內部目的保存該信息,例如決定什麼應用程序下次啓動,用戶執行某些操作。' - 這正是我我試圖避免。該解決方案需要爲給定的Intent設置Android的系統設置。 – Randy
我猜你不會在沒有打開應用程序的情況下這樣做,因爲正如我所說的那樣,這樣做的功能已經在Froyo中棄用了,因爲Android團隊認爲應用程序會改變這一點,並且必須通過默認方式完成由系統創建並啓動picker。至少在這裏你有一個用戶選擇應用程序的對話框,你可以知道選擇了哪一個。這是我能想到的最好的。我害怕我什麼也做不了。 –
這就是我所懷疑的,但我很欣賞這種努力。 – Randy