Android中開啟其他應用程式的元件

2021-06-20 18:12:42 字數 1182 閱讀 8132

背景:有時候我們需要在自己的應用中去開啟其他應用程式的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,系統就可...