Отправка смс намерений с несколькими типами дополнений

Итак, у меня есть приложение, в котором есть кнопка, при нажатии на которую открывается приложение sms и заполняется тело, которое вы затем можете отправить кому угодно. Я использую:

Intent shareIntent = new Intent(Intent.ACTION_VIEW);
shareIntent.putExtra("sms_body", getResources().getString(R.string.sharingSMS));
shareIntent.setType("vnd.android-dir/mms-sms");
startActivity(shareIntent);

Это работает почти на всех телефонах, которые я пробовал, но на Motorola Razr (что раздражает меня, так как у меня было много проблем с их кодом, отличающимся) тело sms пустое. Теперь, когда я использую:

shareIntent.putExtra(Intent.EXTRA_TEXT, getResources().getString(R.string.sharingSMS));

вместо sms_body он работает нормально, но не работает ни с какими другими телефонами. После поиска проблем по этому вопросу я обнаружил, что, поскольку sms_body не является частью операционной системы Android, он не обязательно должен работать со всеми телефонами. Когда я ищу, как отправить смс, также все говорят, что делать это первым способом, я делаю это с sms_body. Еще я попытался добавить оба дополнения, тогда это работало на всех телефонах, на которых я его тестировал, но другие люди получили сбой со следующим: android.content. ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW typ=vnd.android-dir/mms-sms (has extras) }

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

1 ответ

Решение

После игры с ним я обнаружил, что вы можете просто использовать вещи для разных телефонов. Я использовал этот код, чтобы узнать, что это за телефон:

String manuModel = Build.MANUFACTURER + " " + Build.MODEL;
Другие вопросы по тегам