Pertanyaan Aplikasi Google Messenger tidak melampirkan Gambar saat mengirim MMS


Saya tidak dapat mengirim MMS dengan gambar di Google Kurir aplikasi. Sementara beberapa perangkat android secara default menginstal aplikasi SMS ini dan untuk itu ketika saya mengirim MMS menggunakan Intent daripada tidak berfungsi.

Masalahnya adalah ToNumber dan mengatur konten MMS tetapi gambar tidak melampirkan pada aplikasi ini.

catatan: Saya sudah mengatur pengaturan MMS APN pada perangkat saya, dan saya sudah memeriksa beberapa perangkat dengan aplikasi yang sama seperti Samsung s4, Motorola G4 Plus.

Ini adalah kode saya saat ini saya Digunakan.

 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


asal


Jawaban:


file_paths.xml dan manifest.xml sama dengan kode Anda.

Buat konten uri:

File imagePath = new File(getFilesDir(), "images");
File newFile = new File(imagePath, "image.png");
Uri contentUri = FileProvider.getUriForFile(this, "packagename", newFile);

Periksa konten uri: 

ImageView imageView = (ImageView) findViewById(R.id.imageview);
//Your image should be displayed
imageView.setImageURI(contentUri);

Buat maksud:

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");

Solusi diuji pada:

a) Galaxy S4, Android 5.0, Messenger ver: 1.9.036

b) Emulator: Nexus 5, Android 6.0, Messaging ver: 1.0.001


1
2017-10-03 20:44