I'm unable to send MMS with image on Google's Messenger app. While some of the android device by default install this SMS app and for that when I send MMS using Intent
than it's not working.
The problem is ToNumber and MMS content set but the image is not attach on this app.
Note: I already set the MMS APN setting on my devices,and i already check on multiple devices with same app like Samsung s4,Motorola G4 Plus.
This is my code currently I Used.
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>
Check the Android phone's network connection if you can't send or receiving MMS messages. An active cellular data connection is required to use the MMS function. Open the phone's Settings and tap “Wireless and Network Settings.” Tap “Mobile Networks” to confirm it is enabled.
Send a photo, video, sticker or voice message on MessengerOpen any conversation, then tap the following options at the bottom next to the text box. If you don't see these options, tap next to the text box first. Take and send new photos or videos. Send photos or videos.
If your smartphone refuses to send or receive picture messages, check that data connection is active and enabled on your device. If you're using Wi-Fi, temporarily disable Wi-Fi and use cellular data. You cannot send MMS over Wi-Fi, so you should make sure you have an active cellular/mobile data plan.
You can try to fix that by clearing the Messages app's app data. On your phone, go to Settings > Apps & notifications > Messages > Storage. Tap on the option that says Clear Storage followed by Clear Cache. Relaunch the Messages app and you should be able to use MMS.
If Facebook Messenger is still not sending pictures on Android, make sure that your time and date are properly set. Like with the majority of instant messengers, media and text messages go to a dedicated server and are later (in a matter of seconds) distributed to recipients.
On your phone, go to Settings > Apps & notifications > Messages > Storage. Tap on the option that says Clear Storage followed by Clear Cache. Relaunch the Messages app and you should be able to use MMS.
Make Sure Auto-download MMS is Turned on 1 Launch the Messages app on your phone. 2 Tap on the three-dots at the top-right corner of your screen and choose Settings. 3 Enable the Auto-retrieve option under the MMS section.
file_paths.xml and manifest.xml are the same as in your code.
Create content uri:
File imagePath = new File(getFilesDir(), "images"); File newFile = new File(imagePath, "image.png"); Uri contentUri = FileProvider.getUriForFile(this, "packagename", newFile);
Check content uri:
ImageView imageView = (ImageView) findViewById(R.id.imageview); //Your image should be displayed imageView.setImageURI(contentUri);
Create intent:
Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, "Text to send"); sendIntent.putExtra(Intent.EXTRA_STREAM, contentUri); sendIntent.setType("image/png");
Solution tested on:
a) Galaxy S4, Android 5.0, Messenger ver: 1.9.036
b) Emulator: Nexus 5, Android 6.0, Messaging ver: 1.0.001
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With