我有一個與瀏覽器中打開URL代碼:覆蓋默認應用程序來處理意圖
Intent i = new Intent(Intent.ACTION_VIEW, uri);
startActivity(i);
我的問題是,如果用戶已經設置了默認的應用程序打開的網址,有沒有辦法覆蓋默認應用程序並顯示應用程序選擇對話框?
我有一個與瀏覽器中打開URL代碼:覆蓋默認應用程序來處理意圖
Intent i = new Intent(Intent.ACTION_VIEW, uri);
startActivity(i);
我的問題是,如果用戶已經設置了默認的應用程序打開的網址,有沒有辦法覆蓋默認應用程序並顯示應用程序選擇對話框?
我剛找到解決方案。它是如此簡單:
startActivity(Intent.createChooser(intent, title));
我不知道你的問題的確切答案,但有一個更復雜的決定。您可以獲取安裝在智能手機上的瀏覽器列表:
PackageManager manager = getPackageManager();
List<ResolveInfo> info = manager.queryIntentActivities(myIntent,PackageManager.MATCH_DEFAULT_ONLY);
然後手動創建一個選擇對話框。
P.S.也許有一個更簡單的解決方案...
這可能會解決我的問題。我設置了我的應用程序來處理soundcloud網址,但實際上我有一個需要在瀏覽器中打開auth2/connect url而不是在我的應用中的情況。實際上我需要的是一種排除'android:pathPrefix'或 'android:pathPattern'的方式,但是沒有辦法排除。以及soundcloud的網址,無法包含所有其他前綴/模式。 – cucko
真棒,它的作品! :) –