3

私は次のことを試しましたが、どれも私の目標に達していません。

セレクターを示す次のコード。

 Intent mmsIntent = new Intent(Intent.ACTION_SEND); 
            mmsIntent.putExtra("sms_body", "some text"); 
            mmsIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
            mmsIntent.setType("image/png");
            startActivity(mmsIntent);

次のコードは作成メッセージ ビューを示していますが、画像は添付されていません。

Intent smsIntent = new Intent(Intent.ACTION_SENDTO);
        smsIntent.addCategory(Intent.CATEGORY_DEFAULT);
        smsIntent.setType("vnd.android-dir/mms-sms");
        smsIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));//Uri.parse(url));
        smsIntent.setData(Uri.parse("sms:" + "89565656"));
        startActivity(smsIntent);

しかし、SDカードからの画像を含むメッセージ作成ビューが必要です。これを達成する方法。

前もって感謝します...!

4

2 に答える 2

3

これを試して

Intent mmsIntent = new Intent(Intent.ACTION_SEND);
//file is the file on the SD Card
mmsIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(file.toURL().toString()));
mmsIntent.setType("image/png");//mmsIntent.setType("image/*"); Maybe?
startActivity(mmsIntent);
于 2012-05-23T14:42:04.173 に答える
1

セレクタを開いて画像を直接添付したくない場合は、このコードを試してください

    PackageManager pm = getPackageManager();
    Intent sendIntent = new Intent(Intent.ACTION_SEND);     


    List<ResolveInfo> resInfo = pm.queryIntentActivities(sendIntent, 0);
    for (int i = 0; i < resInfo.size(); i++) {
         ResolveInfo ri = resInfo.get(i);
         String packageName = ri.activityInfo.packageName;

         if(packageName.contains("mms")) {
             Log.d("TAG", packageName + " : " + ri.activityInfo.name);
             sendIntent.setComponent(new ComponentName(packageName, ri.activityInfo.name));
         }
    } 

    sendIntent.putExtra("address", "1234567890");
    sendIntent.putExtra("sms_body", "some text");
    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("/sdcard/DCIM/Camera/image.jpg"));
    sendIntent.setType("image/*"); 
    startActivity(sendIntent);
于 2015-01-31T14:52:11.607 に答える