例如,我有一个电话号码和一个名为“与联系人聊天”的按钮。单击按钮时,我的应用程序应打开Viber活动,该活动代表基于电话号码的特定Viber联系人聊天窗口。我有类似的东西,但是 startActivity()方法抛出 ActivityNotFoundException 。
val intent = Intent(Intent.ACTION_SENDTO).apply {
`package` = "com.viber.voip"
data = Uri.parse("sms:$phoneNumber")
putExtra("address", phoneNumber)
}
startActivity(intent)
我知道Viber以前曾提供过该操作,但此操作可能已在3或4年前隐藏在清单文件中。现在有什么想法吗?
答案 0 :(得分:0)
我刚刚分析了 Viber 的清单并看到了:
<intent-filter>
<action
android:name="android.intent.action.SEND" />
<category
android:name="android.intent.category.DEFAULT" />
<data
android:scheme="smsto" />
<data
android:scheme="sms" />
</intent-filter>
看起来 Viber 使用方案 Intent.ACTION_SEND
和 sms:
处理 smsto:
。
尝试像这样更改您的代码:
val intent = Intent(Intent.ACTION_SEND).apply {
`package` = "com.viber.voip"
data = Uri.parse("sms:$phoneNumber")
}
startActivity(intent)