1. 程式人生 > >利用Intent隱式跳轉,實現手動選擇開啟符合條件的應用程式

利用Intent隱式跳轉,實現手動選擇開啟符合條件的應用程式

先看實現效果:

實現如上圖一樣的效果,可以手動選擇開啟手機上符合條件的應用程式,用於程式中的一些功能,比如程式中分享功能,將手機上符合分享條件的所有程式彈出來供使用人手動選擇;再比如手機白名單的實現!

實現原理:使用Intent的隱示意圖跳轉實現,具體程式碼如下

AndroidManifest.xml中的配置

<activity android:name=".thirdpartyActicity.OKHttpUtilsActivity">
            <intent-filter>
                <action android:name="okhttpUtils" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

action中填寫自定義的名稱,這個名稱為過濾的內容之一,當兩個程式的name一樣時,在跳轉的時候,實現上述效果;

category中使用預設值即可

Activity.java中intent程式碼如下:

​
        Intent intent = new Intent();
        intent.setAction(action);
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        startActivity(intent);

​

intent跳轉時會與AndroidManifest.xml中的activity的action進行對比,一致時會自動跳轉,當多個程式的action一致時,則會自動彈出選擇,

根據上述原理,也可實現本程式中,根據action不同跳轉不同的頁面,在AndroidManifest.xml中,給不同的activity配置不同的action,在跳轉位置,只需要寫幾句簡單的跳轉程式碼,即可實現自動跳轉到不同頁面!

注意:AndroidManifest.xml中的activity的action區分大小寫,必須與Activity.java中的intent中的action完全一致