2017-07-03 5 views
2

Je veux envoyer un fichier gif en utilisant l'image MMS.J'ai écrit le code sur la version Android 6 mais en dessous il ne fonctionne pas.Envoyer l'image gif à l'application de messagerie

Voici mon code.

 mGifFile = getFileForResource(ImageKeyboard.this, imageId[position], imagesDir, "image_new.gif"); 
    Uri newFile = FileProvider.getUriForFile(ImageKeyboard.this, AUTHORITY, mGifFile); 


       String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(ImageKeyboard.this); //Need to change the build to API 19 
        Intent intent = new Intent(Intent.ACTION_SEND); 

       intent.setPackage(defaultSmsPackageName); 
        intent.putExtra("sms_body", "Hi how are you"); 
        intent.putExtra(Intent.EXTRA_STREAM, newFile); 
        intent.setType("image/gif"); 
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        ImageKeyboard.this.startActivity(intent); 

S'il vous plaît aidez-moi à résoudre ce problème

+0

Avez-vous vérifié votre journal? Pouvez-vous fournir cela s'il vous plaît –

+0

quelle est l'erreur sur l'écrasement dans le journal de l'accident –

+0

Je n'ai pas eu de journal. il affiche le message Malheureusement la messagerie a arrêté. @ H.Brooks – Lassie

Répondre

0

Vous pouvez obtenir le nom du package sms par défaut dans l'API < 19 en créant une méthode comme ceci:

public static final String getDefaultSmsPackage(Context context){ 
    String defApp = Settings.Secure.getString(context.getContentResolver(), "sms_default_application"); 
    PackageManager pm = context.getApplicationContext().getPackageManager(); 
    Intent iIntent = pm.getLaunchIntentForPackage(defApp); 
    ResolveInfo mInfo = pm.resolveActivity(iIntent,0); 
    return mInfo.activityInfo.packageName; 
} 

Ce code est équivalent à votre

Telephony.Sms.getDefaultSmsPackage(...)