[当用户单击我的应用程序中的按钮时,我想在其设备上使用固定的电话号码和示例文本来启动默认的SMS应用程序。
为了实现这一点,我决定遵循the official documentation。我使用了示例代码中的确切功能:
fun composeMmsMessage() {
val intent = Intent(Intent.ACTION_SEND).apply {
data = Uri.parse("smsto:+2340000000000") // I used a valid phone number in my actual code
putExtra("sms_body", "Hi there!")
}
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
}
}
[我认为也值得一提的是,我是从一个片段开始运行的,我认为packageManager
与该活动有关。另外,我已经在三种不同的设备(两张Kitkats,一张Oreo)上测试了该应用程序。
但是,我注意到intent.resolveActivity(packageManager)
始终为空。因此,这永远行不通。是否有比官方文档中更好的方法?
尝试一次,而不是ACTION_SEND,请使用ACTION_SENDTO
fun composeMmsMessage() {
val intent = Intent(Intent.ACTION_SENDTO).apply {
data = Uri.parse("smsto:+2340000000000") // I used a valid phone number in my actual code
putExtra("sms_body", "Hi there!")
}
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
}
}
我找到了一个简单的修复程序,它就像一个超级按钮:
fun composeMmsMessage() {
val intent = Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", "+2340000000000", null)).apply {
putExtra("sms_body", "Hi there!")
}
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
}
}