Я не могу отправить MMS с изображением в приложении Messenger Google. Хотя некоторые из устройств Android по умолчанию устанавливают это приложение SMS, и для этого, когда я отправляю MMS с помощью Intent
, он не работает.Приложение Google Messenger не прикрепляет изображение при отправке MMS
Проблема заключается в том, что количество сообщений и содержание MMS установлено, но изображение не прикрепляется к этому приложению.
Примечание: Я уже установить настройки MMS APN на своих устройствах, и я уже проверить на нескольких устройствах с таким же приложение, как Samsung, Motorola s4 G4 Plus.
Это мой код в настоящее время я использовал.
String toNumbers = "comma seperated mobile numbers";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
{
String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(getActivity());
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra("address", toNumbers);
sendIntent.setPackage("com.android.mms");
//Uri uri = Uri.fromFile(new File(getContext().getExternalFilesDir(""), "image.png"));
File imagePath = new File(getFilesDir(), "images");
File newFile = new File(imagePath, "image.png");
Uri uri = getUriForFile(this, "packagename", newFile);
File file = new File(contentUri.getPath());
if (file.exists()) {
//Do something
Log.d("TAG","Exist");
}
sendIntent.putExtra(Intent.EXTRA_STREAM, uri);
sendIntent.setType("image/png");
sendIntent.putExtra("sms_body", getString(R.string.sms_body, HostName));
if (defaultSmsPackageName != null)
{
sendIntent.setPackage(defaultSmsPackageName);
}
startActivityForResult(sendIntent, Constants.SEND_SMS_REQUEST);
}
else
{
Intent smsIntent = new Intent(android.content.Intent.ACTION_VIEW);
smsIntent.putExtra("address", toNumbers);
smsIntent.setPackage("com.android.mms");
Uri uri = Uri.fromFile(new File(getContext().getExternalFilesDir(""), "image.png"));
smsIntent.putExtra(Intent.EXTRA_STREAM, uri);
smsIntent.setType("image/png");
smsIntent.putExtra("sms_body", getString(R.string.sms_body, HostName));
startActivityForResult(smsIntent, Constants.SEND_SMS_REQUEST);
}
file_paths.xml
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path
name="files"
path="images/" />
</paths>
manifeast.xml
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="packagename"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
'getExternalFilesDir 'возвращает каталог, доступ к которому имеет только ваше приложение. Никакое другое приложение не может читать. Вам нужно будет открыть файл с помощью [FileProvider] (https://developer.android.com/reference/android/support/v4/content/FileProvider.html). –
Я уже пытаюсь с этим, но его не работает. –
** Ну, тогда обновите вопрос, чтобы мы знали, с чем вы сейчас работаете. ** Вы абсолютно уверены, что вы выполнили все шаги, включая предоставление временных разрешений. B) Правильно ли путь к файлу? Внешние файлы dir указывают, скорее всего, на '/ storage/emulated/0/Android/data/<идентификатор приложения вашего приложения>/files', который является внутренней памятью, а не SD-картой. –