2017-07-03 56 views
2

我想發送使用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.Brooks – Lassie

回答

0

您可以通過創建一個像這樣的方法在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(...) 
相關問題