一、使用包名,特定activity名拉起:
intent intent = new intent(intent.action_main);
/**知道要跳轉應用的包命與目標activity*/
componentname componentname = new componentname("com.***.***","com.***x.***.***.bactivity");
intent.setcomponent(componentname);
//這裡intent傳值
bundle bundle = new bundle();
bundle.putstring("key", "你好");
intent.putextras(bundle);
startactivity(intent);
android:exported="true"
接收傳入的值:
bundle bundle = this.getintent().getextras();
// 防止直接啟動mainactivity時空指標閃退
if (bundle != null)
二、包名拉起(進入啟動頁)
intent intent = getpackagemanager().getlaunchintentforpackage("com.***.***");
if (intent != null)
3.使用url拉起
intent intent = new intent();
intent.setdata(uri.parse("csd:"));
//這裡intent當然也可傳遞引數,但是一般情況下都會放到上面的url中進行傳遞
intent.putextra("", "");
intent.setflags(intent.flag_activity_new_task);
startactivity(intent);
b中:manifest檔案需配置(注意:在原有intent-filter下方另外新增)
1.判斷b應用是否安裝
/**
* 檢查包是否存在
* @param packname
* @return
*/private boolean checkpackinfo(string packname) catch (packagemanager.namenotfoundexception e)
return packageinfo != null;
}
2.判斷b應用是否在後台執行並直接開啟
//activity完整名
string mainact = null;
//根據包名尋找
packagemanager pkgmag = context.getpackagemanager();
intent intent = new intent(intent.action_main);
intent.addcategory(intent.category_launcher);
intent.setflags(intent.flag_activity_reset_task_if_needed|intent.flag_activity_new_task);
listlist = pkgmag.queryintentactivities(intent,
packagemanager.get_activities);
for (int i = 0; i < list.size(); i++)
}if (textutils.isempty(mainact))
intent.setcomponent(new componentname(packagename, mainact));
return intent;
}public static context getpackagecontext(context context, string packagename) else catch (packagemanager.namenotfoundexception e)
}return pkgcontext;
}public static boolean openpackage(context context, string packagename)
return false;
}//根據包名檢測
if (checkpackinfo("com.***.***")) else
接受傳值跨登入操作:
舉個栗子:(使用handler進行操作)
if(getintent().ha***tra("***"))else
記錄檢查喚起另一手機中已安裝App
1 獲取應用列表再根據包名遍歷,但因許可權問題,很多時候無法獲取到已安裝應用列表 list list getpackagemanager getinstalledpackages packagemanager.get permissions stringbuilder stringbuilder n...
iOS App 喚醒另乙個App
網上也有講這塊的,感覺講得都不是很好。而且有一些細節根本沒有講清楚。這裡重寫整理一下相關知識點。ios有個特性就是應用將其自身 繫結 到乙個自定義url scheme上,該scheme用於從瀏覽器或其他應用中啟動本應用。常見的分享到第三方之間的跳轉都是基於scheme的。通過對比網頁鏈結來理解ios...
Android APP開啟另乙個APP完整邏輯實現
intent intent new intent intent.action main 知道要跳轉應用的包命與目標activity componentname componentname new componentname kuyu.com.x kuyu.com.x.login.welcomeact...