Android4.4 не может обрабатывать SMS намерение с "vnd.android-dir / mms-sms"

в моем приложении есть кнопка для запуска sms-активности по умолчанию и он отлично работал во всех версиях android, кроме новой, Android 4.4(kitkat) Вот код:

public void onClick(View arg0) {
    Intent smsIntent = new Intent(Intent.ACTION_VIEW);
    smsIntent.setType("vnd.android-dir/mms-sms");
    smsIntent.putExtra("address", member.getPhoneNumber().trim());
    context.startActivity(smsIntent);
}

и я получаю сообщения об ошибках

11-08 02:08:32.815: E/AndroidRuntime(14733): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW typ=vnd.android-dir/mms-sms (has extras) }

Я знаю, что google внес некоторые изменения в то, как приложение sms по умолчанию обрабатывает sms намерения. но мое приложение не является sms-приложением, но оно имеет функцию только для запуска sms-приложения по умолчанию с номером получателя. поэтому, пожалуйста, помогите.

1 ответов


чтобы запустить приложение SMS с номером заполнены использовать действие ACTION_SENDTO:

Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("smsto:" + Uri.encode(phoneNumber)));
startActivity(intent);

Это будет работать на Android 4.4. Он также должен работать на более ранних версиях Android, однако, поскольку API никогда не были общедоступными, поведение может отличаться. Если бы у вас не было проблем с вашим предыдущим методом, я бы, вероятно, просто придерживался этого pre-4.4 и использовал ACTION_SENDTO для 4.4+.