1

写真を撮ってメールで送信するアプリケーションを作成しようとしています。ここ数日、コードをいじって過ごしました。さまざまなことを試しましたが、まだ機能しません。問題なく写真を撮ることができます。送信しようとすると、アプリケーションがクラッシュします。以下のコードを参照してください。

public class Camera extends Activity implements View.OnClickListener {

ImageButton ib;
Button b;
ImageView iv;
Intent i;
final static int cameraData = 0;
Bitmap bmp;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.photo);
    initialize();
    InputStream is = getResources().openRawResource(R.drawable.ic_launcher);
    bmp = BitmapFactory.decodeStream(is);
}

private void initialize() {
    ib = (ImageButton) findViewById(R.id.ibTakePic);
    b = (Button) findViewById(R.id.bSendPic);
    iv = (ImageView) findViewById(R.id.ivReturnedPic);
    b.setOnClickListener(this);
    ib.setOnClickListener(this);

}

@Override
public void onClick(View v) {

    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.bSendPic:
        String emailaddress[] = { "info@sklep.com", "", };

        Intent emailIntent = new Intent(Intent.ACTION_SEND);
        emailIntent.putExtra(Intent.EXTRA_EMAIL, emailaddress);

        // getPackageName() is your app package
        Uri path = Uri.parse("android.resource://" + getPackageName()
                + "/ + R.drawable.ic_launcher");
        emailIntent.putExtra(Intent.EXTRA_STREAM, path); // Replace your
                                                            // line
        emailIntent.setType("image/png");
        startActivity(Intent.createChooser(emailIntent, "Send Mail"));

        /*
         * emailIntent.setType("image/jpeg");
         * 
         * emailIntent.putExtra(Intent.EXTRA_STREAM, bmp);
         * 
         * emailIntent.setType("message/rfc822");
         * startActivity(Intent.createChooser(emailIntent, "Send Mail"));
         */

        break;
    case R.id.ibTakePic:
        i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(i, cameraData);
        break;
    }

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {

        Bundle extras = data.getExtras();
        bmp = (Bitmap) extras.get("data");
        bmp = BitmapFactory.decodeResource(getResources(),
                R.drawable.ic_launcher);

    }
}

}

送信しようとすると、次のエラーが表示されます。

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SEND (has extras)

誰かがこれで私を助けてくれますか? ありがとう

4

3 に答える 3

0

emailIntent.setType( "message / rfc822");を追加します。使用する前にstartActivity(emailIntent);。また、これを使用しますIntent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

于 2012-08-28T10:06:56.440 に答える
0

これを使ってみてください

startActivityForResult(((Intent.createChooser(emailIntent, "Send mail..."))), 0);
于 2012-08-28T09:48:09.187 に答える
0

この種のインテントを処理する適切なアプリがないようです。代わりにセレクターを作成してみてください。これにより、そのようなインテントを処理できるアプリケーションとのダイアログが開きます。

次の行を追加してみてください。

次のリンクを使用してください: getPackageName

//getPackageName() is your app package
    Uri path = Uri.parse("android.resource://"+ getPackageName() +"/ + R.drawable.ic_launcher");    
    emailIntent.putExtra(Intent.EXTRA_STREAM, path ); //Replace your line
            emailIntent.setType("image/png");
            startActivity(Intent.createChooser(emailIntent, "Send Mail"));
于 2012-08-28T09:51:17.807 に答える