背景:有時候我們需要在自己的應用中去開啟其他應用程式的activity或者service ,下面是通過兩種方式開啟 ,為什麼是兩種方式呢? 我們本來可以直接開啟其他應用程式的,為什麼要在轉個彎通過廣播去開啟,答案很簡單,因為專案所需,哈哈
一: 通過廣播開啟其他應用程式
開啟其他應用程式的activity
開啟其他應用程式的service
二:直接開啟其他應用程式
開啟其他應用程式的activity
開啟其他應用程式的service
注意事項:
一:componentname的引數定義
componentname componentname=new componentname("com.liu.testdemo","com.liu.testdemo.textbroadcastreceiver");
1:第乙個引數定義:
根據開啟的元件所在的位置來確定
如果開啟的元件不在根包名下,那麼第乙個引數就是應用程式的包名,而不是元件所 在的包名且需要在開啟的元件中新增android:exported="true"
如果開啟的元件是在根包名下 那麼第乙個引數就是應用程式的包名,此時也不需要在 開啟的元件中新增android:exported="true"
2:第二個引數定義:
所要開啟的元件的絕對路徑
例如:你在包com.liu.testdemo 下建立了textbroadcastreceiver,
那麼componentname的引數就是:
componentname=new componentname("com.liu.testdemo", "com.liu.testdemo.textbroadcastreceiver");
如果你在包com.liu.testdemo.receiver下建立了textbroadcastreceiver
那麼componentname的引數就是:
componentname=new componentname("com.liu.testdemo", "com.liu.testdemo.receiver.textbroadcastreceiver");
且需要新增android:exported="true"
二:android:exported="true"的新增
作用:設定要開啟的元件可以被其他應用程式呼叫
android獲取其他應用資訊
adb shell dumpsys activity activities 先啟動需要的查詢的apk,再敲入以上命令,在stack 1下查詢cmp 其後的內容為包名 mainactivity 注 dumpsys activity可以檢視系統的所有的活動,包括服務 廣播等,加上activities則只...
Android獲取其他應用包名
本節內容是如何獲取android系統中應用程式的資訊,主要包括packagename label icon 占用大小等。具體分為兩個 部 分,計畫如下 第一部分 獲取應用程式的packagename label icon等 第二部分 獲取應用程式的占用大小,包括 快取大小 cachsize 資料大小...
在SDK中開啟其他接入應用的解決方案
在sdk中開啟其他接入應用的解決方案 使用的辦法如下 nsstring identifier nsbundle mainbundle objectforinfodictionarykey cfbundleidentifier 其實就是類似下面的樣式。這樣就只要open這個應用的自定義url,系統就可...