如何通过隐式意图打开短信应用程序?

D. *_*yne 3 android android-intent

我按照这个代码:

    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_DEFAULT);
    intent.setType("vnd.android-dir/mms-sms");
    startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

它适用于Android 5.1,但不适用于Android 6.0,因为android.content.ActivityNotFoundException: No Activity found to handle Intent.那么,如何通过隐式意图打开短信应用?

编辑:

  1. 你看了我的帖子?我需要打开应用程序,而不是发送消息.

  2. 我检查这篇文章,但它不起作用!

小智 9

你可以尝试这个,它对我有用:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_APP_MESSAGING);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

  • 它对我有用,因为我正在寻找查看短信列表,而不是发送短信 (3认同)

Pre*_*ola 6

用这个:

public void composeSmsMessage(String message, String phoneNumber) {
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setData(Uri.parse("smsto:"+phoneNumber)); // This ensures only SMS apps respond
    intent.putExtra("sms_body", message);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}
Run Code Online (Sandbox Code Playgroud)

官方文档