兩個應用同時存在的情況處理

2021-08-31 17:57:57 字數 1625 閱讀 6326

1.應用場景:對於我們自己開發的兩個應用程式,乙個應用程式的包名為 aa.bb.cc,軟體名叫a,它的入口activity為 aaactivity(入口activity就是在androidmanifest.xml中標籤——所在的activity,說白了,就是開啟應用程式,第乙個顯示的activity),另乙個應用程式的包名為 xx.yy.zz,軟體名叫x,它的入口activity為 xxactivity。

網上的通用做法如下(這裡我假設a中有乙個button,這個button的onclick事件中的**如下):

componentname componentname=new componentname("xx.yy.zz","xx.yy.zz.xxactivity");

intent intent=new intent();

intent.setcomponent(componentname);

intent.setaction(intent.action_view);

startactivity(intent);

這種方法對於呼叫我們自己寫的應用程式沒有問題,但是如果你想呼叫別人的應用程式(例如:你寫了乙個遊戲管理的軟體,需要管理很多遊戲,但是遊戲不是你寫的,你是得不到入口activity的,你怎麼辦?),解決辦法如下:

通過packagemanager可以得到packageinfo,通過packageinfo就可以得到你手機上安裝的應用的包名(這個很簡單,網上有的是,不贅述)。關鍵是下一步,**如下(也是a應用中button的onclick中的**):

packagemanager packagemanager = start_removesoftactivity.this.getpackagemanager();

intent intent=new intent();

try catch (namenotfoundexception e)

startactivity(intent);

其中,"要呼叫應用的包名"為通過packageinfo得到的想要啟動的應用的包名。這樣,我們就可以不知道別人應用原始碼的情況下,也可以呼叫別人的應用程式。

3.通過**在應用中安裝已有的apk

需要將apk拷貝至shared_prefs資料夾下

(eclipse下工具欄window-->show view-->other-->android-->file explorer,

也許開啟的file explorer為空白,這個你肯定忘了先執行下面**構成的工程。出現目錄後找到data/data/工程包名/shared_prefs,ok)

public class apktest extends activity

public void dumpapk(string path)

intent it = new intent(intent.action_delete, uri);

startactivity(it);

}public void installapk(string path)

public void mkshared_prefs()

sharedpreferences.editor editor = metafer.edit();

"imsi", "");

editor.commit();}}

如何同時管理兩個專案?

最近比較忙。產品的乙個版本a正在測試部門進行功能 效能的驗證測試,另乙個版本b正在處於需求分析階段。因工作安排關係,我作為版本a專案組c和版本b專案組d的專案經理,需要負責版本a的問題定位 小特性開發的的組織工作,需要負責版本b的專案計畫 開發組織工作。多項工作進行,面臨多個領導的壓力,確實是很有挑...

如何同時返回兩個值

關鍵字就是被c語言本身占用的那些字串,比如 int,typedef。我們在定義變數或函式的名字時時要避開它們。標誌符就是我們定義的變數和函式的名字。提出乙個問題 寫乙個函式,計算兩個數相除,要求同時返回商和餘數,怎麼寫?我們知道函式的返回值只能有乙個,同時返回兩個數這跟本不可能。但用結構就變為可能了...

linux同時啟動兩個Tomcat

在檔案末尾複製貼上即可 儲存退出後執行 source etc profile 在其中個tomcat裡修改配置 修改bin目錄的 catalina.sh vim catalina.sh 在檔案開頭加入 開啟server.xml更改埠 修改server.xml配置和第乙個不同的啟動 關閉監聽埠。修改後示...