发送GIF图像到消息应用程序

问题描述:

我想发送使用MMS图像的gif。我写了它在Android 6版本上工作的代码,但在它下面没有工作消息应用程序崩溃。发送GIF图像到消息应用程序

这是我的代码。

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

请帮我解决这个问题

+0

你检查了你的日志吗?你能否提供该请求 –

+0

崩溃日志崩溃时的错误是什么 –

+0

我没有得到任何日志。它显示消息不幸消息已停止。@ H.*s – Lassie

您可以通过创建一个像这样的方法在API < 19获得默认的SMS程序包名称:

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; 
} 

此代码相当于你

Telephony.Sms.getDefaultSmsPackage(...)