Pregunta La aplicación Messenger de Google no adjunta la imagen mientras envía MMS


No puedo enviar MMS con imagen en Google Mensajero aplicación 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>

32
2017-08-11 05:39


origen


Respuestas:


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


1
2017-10-03 20:44