将gif图像发送到消息传递应用程序

时间:2017-07-03 11:09:19

标签: android gif mms

我想用彩色图像发送gif。我写了它在Android 6版本上运行的代码,但是它下面没有工作的消息传递应用程序崩溃。

这是我的代码。

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

请帮我解决此问题

1 个答案:

答案 0 :(得分:0)

您可以通过创建如下方法来获取API< 19中的默认短信包名称:

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(...)