Avatar ·

如何在Android上从其他应用启动Activity(Kotlin)

大家好!我是一名初学Kotlin的Android开发者,遇到了一个问题。我正在编写一个启动器应用,需要打开其他已安装应用中的Activity。例如,我想通过点击按钮打开相机或地图。但我不明白如何正确构建Intent以及需要传递哪些数据。 以下是我尝试过的代码: ```kotlin val intent = Intent() intent.action = Intent.ACTION_VIEW intent.data = Uri.parse("com.example.targetapp") startActivity(intent) ``` 但这会导致崩溃,错误信息为`android.content.ActivityNotFoundException`。我还尝试通过PackageManager调用`getLaunchIntentForPackage()`: ```kotlin val pm = packageManager val intent = pm.getLaunchIntentForPackage("com.whatsapp") startActivity(intent) ``` 这对WhatsApp有效,但并非对所有应用都有效。例如,对于“笔记”应用(com.example.notes),返回的是null。为什么会这样?以及如何正确打开应用内的特定Activity,而不是仅启动主Activity?