2017-10-31 23 views
0

私のコードでカメラを開くのが難しく、助けていただければと思っています...基本的にはアプリが表示され、テキストをクリックするとアプリはすぐに終了します...私は正しく2つをリンクしていないと感じる。ここでクリック可能なTextViewからカメラを開くことができません

はactivity_main.xmlからのコードです:

<TextView 
    android:id="@+id/textView4" 
    android:clickable="true" 
    android:onClick="onClick" 
    android:text="@string/openCamera" /> 

そして、ここでは私のJavaです:

public class MainActivity extends AppCompatActivity { 

static final int REQUEST_IMAGE_CAPTURE = 1; 
TextView txt; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    txt = (TextView) findViewById(R.id.textView4); 

    if (!hasCamera()) { 
     txt.setEnabled(false); 
    } 

    txt.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 


      Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

      startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 

     } 
    }); 
} 

private boolean hasCamera() { 
    return getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY); 

} 

Logcatは、次のことを言及:

FATAL EXCEPTION: main 
                                   java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE cmp=com.sec.android.app.camera/.Camera launchParam=MultiScreenLaunchParams { mDisplayId=0 mBaseDisplayId=0 mFlags=0 } } from ProcessRecord{29106f2 12844:com.example.xxxxxxxxxx} (pid=12844, uid=10188) with revoked permission android.permission.CAMERA 
+4

があなたのlogcatを投稿し、これを読んでください:: https://stackoverflow.com/help/how-to-ask – Barns

答えて

0

、あなたはまた、活動中のonClickリスナを使用している場合

1.PleaseはxmlファイルからあなたのonClickリスナーを削除...行きます。あなたの活動のあなたのAndroidManifest.xml

<uses-feature 
     android:name="android.hardware.camera.any" 
     android:required="true" /> 
    <uses-feature 
     android:name="android.hardware.camera.autofocus" 
     android:required="false" /> 

クリックリスナー以下3.Addへの権限下に

<TextView 
    android:id="@+id/textView4" 
    android:clickable="true" 
    android:text="@string/openCamera" /> 

2.Add。

textView4.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       startActivity(cameraIntent); 
      } 
     }); 

5.キャプチャした画像を表示するには、xmlファイルにimageviewを追加する必要があります。画像を表示するには、あなたの活動で以下のコードを使用してください。

textView4.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       startActivityForResult(cameraIntent, 1); 
      } 
     }); 

6.次のメソッドをonCreateの後に追加します。

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == 1) { 
     Bitmap image = (Bitmap) data.getExtras().get("data"); 
     ImageView imageview = (ImageView) findViewById(R.id.imageView); //sets imageview as the bitmap 
     imageview.setImageBitmap(image); 
    } 
    } 
+0

あなたは答えを受け入れていただけますか?あなたは投票ボタンの下で右のシンボルを見ることができます、あなたはそれをクリックする必要があります。 – androidOnHigh

0

おそらくあなたが追加見逃していますマニフェストのカメラ権限:

ここ
<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.autofocus" /> 
関連する問題