android - mensaje - La aplicación Messenger de Google no adjunta la imagen mientras envía MMS
messages android (1)
No puedo enviar MMS con imagen en la aplicación Messenger de Google. Mientras que algunos de los dispositivos Android instalan por defecto esta aplicación de SMS y para eso cuando envío MMS usando Intent
de lo que no está funcionando.
El problema es establecer el contenido de ToNumber y MMS, pero la imagen no se adjunta en esta aplicación.
Nota: Ya configuré la configuración MMS APN en mis dispositivos, y ya verifico múltiples dispositivos con la misma aplicación, como Samsung s4, Motorola G4 Plus.
Este es mi código actualmente que utilizo.
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>
file_paths.xml y manifest.xml son los mismos que en tu código.
Crea contenido uri :
File imagePath = new File(getFilesDir(), "images");
File newFile = new File(imagePath, "image.png");
Uri contentUri = FileProvider.getUriForFile(this, "packagename", newFile);
Verifique el contenido uri:
ImageView imageView = (ImageView) findViewById(R.id.imageview);
//Your image should be displayed
imageView.setImageURI(contentUri);
Crear intento:
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");
Solución probada en:
a) Galaxy S4, Android 5.0, Messenger versión: 1.9.036
b) Emulador: Nexus 5, Android 6.0, mensajería, versión: 1.0.001