回覆列表
-
1 # 班德爾人
-
2 # 天涯小生
根據已知另一個應用的資訊,可以用以下三種方式:
知道另一個應用的包名packageName,可以用如下函式:知道另一個應用在AndroidManifest.xml
中定義好的IntentFilter,可以用如下函式:知道另一個應用的包名及Activity的類名,可以用如下函式:
根據已知另一個應用的資訊,可以用以下三種方式:
知道另一個應用的包名packageName,可以用如下函式:知道另一個應用在AndroidManifest.xml
中定義好的IntentFilter,可以用如下函式:知道另一個應用的包名及Activity的類名,可以用如下函式:
使用Intent通訊,包括顯示啟動和隱式啟動,顯示啟動常用語同一應用中不同Activity,而隱式啟動常用與不同應用間通訊。使用隱式啟動方式,首先要了解AndroidManifest.xml中Activity的配置,一般一個Activity可以有多個action和category屬性,當前應用在使用Intent通訊時,指定目標Activity的action屬性和category屬性,並呼叫startActivity()方法啟動Intent通訊,從而實現啟動另一個應用的功能。
舉個例子:
應用1有一個Activity A, A的action和category屬性分別為action_a,category_a.
應用2有一個Activity B, B的action和category屬性分別為action_b,category_b.
那麼透過應用1來啟動應用2的程式碼就是這樣的:
Intent intent = new Intent();//建立一個通訊載體
intent.addAction(action_b);//指定action
intent.addCategory(category_b);//指定category,這裡如果不指定的話,通訊啟動時會預設賦值為android.content.category.DEFAULT
startActivity(intent);//啟動通訊