我不认为有正式的文件记录这个。但是你可以做些什么来了解它。
你可以列出设备上安装的所有微软应用程序...
val packages = context.packageManager
.getInstalledApplications(PackageManager.GET_META_DATA)
for (info in packages) {
if(info.packageName.startsWith("com.microsoft", true)){
Log.d("package name:" + info.packageName)
Log.d("Launch Activity: " + context.packageManager.getLaunchIntentForPackage(info.packageName))
}
}
在LogCat中记下“启动意图(launch intent)”。您可以使用该意图来启动Outlook应用程序。只需确保您不会硬编码这些值,因为Microsoft随时可以更改这些值,例如活动类可能会更改。所以,不要像这样做...
context.startActivity(
Intent().apply {
action = Intent.ACTION_MAIN
addCategory(Intent.CATEGORY_LAUNCHER)
setPackage("com.microsoft.office.outlook")
component = ComponentName("com.microsoft.office.outlook", "com.microsoft.office.outlook.MainActivity")
}
)
请执行以下操作...
context.startActivity(
Intent().apply {
action = Intent.ACTION_MAIN
addCategory(Intent.CATEGORY_LAUNCHER)
component = ComponentName(
outlookLaunchIntent?.component?.packageName,
outlookLaunchIntent?.component?.className
)
setPackage(outlookLaunchIntent.package)
}
)
另外,请记住getLaunchIntentForPackage
和component
可能会返回null,因此请确保您适当地检查null值。