android studio
スクリーンショットを撮り、メールで送信するアプリですが、起動しても「has stopp」と出てしまい、わからなくなりました。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード
package com.example.ubuntu.hattoriabe;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.hardware.display.VirtualDisplay;
import android.media.ImageReader;
import android.media.projection.MediaProjection;
import android.media.projection.MediaProjectionManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.PixelFormat;
import android.hardware.display.DisplayManager;
import android.hardware.display.VirtualDisplay;
import android.media.Image;
import android.media.ImageReader;
import android.media.projection.MediaProjection;
import android.media.projection.MediaProjectionManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import java.nio.ByteBuffer;
public class anket extends AppCompatActivity implements View.OnClickListener {
protected void onCreate() {
}
public void home (View view){ Intent intent = new Intent(this, home.class); startActivity(intent); } private MediaProjectionManager mpManager; private MediaProjection mProjection; private static final int REQUEST_MEDIA_PROJECTION = 1001; private int displayWidth, displayHeight; private ImageReader imageReader; private VirtualDisplay virtualDisplay; private int screenDensity; private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_anket); // 全体キャプチャ Button captureAll = (Button)findViewById(R.id.button3); captureAll.setOnClickListener(this); imageView = findViewById(R.id.image_view); // キャプチャした画像を添付してメールを送る Button sendMail = (Button)findViewById(R.id.button4); sendMail.setOnClickListener(this); } public void onClick(View v) { // 読み書きするファイル名を指定 File file = new File(Environment.getExternalStorageDirectory() + "/capture.jpeg"); // 指定したファイル名が無ければ作成する。 file.getParentFile().mkdir(); switch(v.getId()) { case R.id.button3: // 全体を撮る saveCapture(findViewById(android.R.id.content),file); break; case R.id.button4: Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"メールアドレス"}); intent.setType("message/rfc822"); Intent putExtra = intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); startActivity(intent); break; } } /** * 撮ったキャプチャを保存 * @param view * @param file */ public void saveCapture(View view, File file) { // キャプチャを撮る Bitmap capture = getViewCapture(view); FileOutputStream fos = null; try { fos = new FileOutputStream(file, false); // 画像のフォーマットと画質と出力先を指定して保存 capture.compress(Bitmap.CompressFormat.JPEG, 100, fos); fos.flush(); } catch (Exception e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.close(); } catch (IOException ie) { fos = null; } } } } /** * キャプチャを撮る * @param view * @return 撮ったキャプチャ(Bitmap) */ public Bitmap getViewCapture(View view) { view.setDrawingCacheEnabled(true); // Viewのキャプチャを取得 Bitmap cache = view.getDrawingCache(); if(cache == null){ return null; } Bitmap screenShot = Bitmap.createBitmap(cache); view.setDrawingCacheEnabled(false); return screenShot; } @Override public void onPointerCaptureChanged(boolean hasCapture) { }
}
試したこと
startActivity(intent); をコメント表示にすると「has stopp」は出なくなりましたが
メールアドレスを書いてもメールが送信されませんでした
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー