2017-01-18 5 views
-2

私のアプリをインストールするデバイスからデフォルトのカメラアプリケーションを開く機能が必要なアプリをビルドしています。私の質問はどのように私はそれを実装するのですか?androidでカメラアプリを開く方法

私は、しばらくの間、グーグルで学んだことは、アプリ内からカメラを開く方法ですが、私が達成しようとしているのは実際にカメラアプリが持つ機能を使用できるデフォルトのカメラです。カメラの実装方法を教えていただけますか?

答えて

2

あなたはカメラアプリで、これは役立つだろう

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_PIC_REQUEST) { 
      Bitmap image = (Bitmap) data.getExtras().get("data"); 
      // do whatever you want with the image now 
    } 
} 

希望を完了したら

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 

今すぐ戻って画像を得る目的でカメラアプリを開くことができます。

0

ただ、写真を要求カメラにIntentを送信します。ここ

static final int REQUEST_IMAGE_CAPTURE = 1; 

private void dispatchTakePictureIntent() { 
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
     startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
    } 
} 

詳細:https://developer.android.com/training/camera/photobasics.html

0

あなたのAndroid携帯電話に作り付けのカメラアプリケーションを使用するには、いくつかのこと まず必要があります。

  • デバイスにはカメラが必要です
  • アプリは写真を撮るためのアクセス許可を持っている必要があります
  • アプリは(あなたがするつもり 場合)上記に以下のコードを追加する必要があります

はの世話をするために画像を保存する権限を持っている必要があります

  • あなたマニフェスト撮影用のカメラを使用する許可のためのファイル、アプリの主な機能は、デバイスを必要に応じてカメラに

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

    を持っているあなたはまた、書き込み/場合は、画像を保存するためにマニフェストファイルのパーミッションに追加する必要がありますこの許可が必要な場合は、あなたのアプリに読み取り許可が与えられます(This試験PLE

    最後にあなたがあなたのために仕事をするためにアンドロイドを求めているので、それは、このための画像であるあなたに結果を返します覚えている必要)

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    
    はstartActivityForResultを使用してコードを渡す必要がないかと考えるでしょう識別子IDあなたのアプリケーションとAndroidの両方が言う123を使用すること、それがその写真を撮る、この目的のため以外の目的に活動に使用されていない限り、任意の整数を指定できます

    メンバー変数

    static final int REQUEST_TAKE_PHOTO = 123; 
    
    private void takePicture() { 
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
        if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
         startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO); 
        } 
    

    ボタンまたは画像にこれを追加しますそのクリックがtakePictureメソッドを呼び出すようにします。

    最終ステップは、Androidが返す画像や結果データが上記の識別子コードREQUEST_TAKE_PHOTO = 123/requestCodeであることを覚えておいてください。あなたは

    @Override 
        protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
         if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
          Bundle extras = data.getExtras(); 
          // Sample data cast to thumbnail 
          Bitmap imageBitmap = (Bitmap) extras.get("data"); 
          // Do whatever you want with the thumbnail such as setting it to image view 
          mImageView.setImageBitmap(imageBitmap); 
         } 
        } 
    

    Source: Android Take Photos

  • +0

    1. AFAIKはすべてのAndroid搭載デバイスにカメラが搭載されています。 2.意図を使用してカメラアプリを開くための許可または機能は必要ありません。 –

    +0

    @KetanAhirこんにちは、私はあなたが下部に接続されたソースリンクを見逃したと思います。 1.「Android搭載端末にはカメラが搭載されている」とは、AndroidはOSで、OSは携帯電話、車、テレビ、TVボックス(オンラインシャネル)アンドロイド携帯電話とタブレット用のビルドを作りましょう。「まったく真実ではありません。」カメラを持たない特定のデバイスがありますが、単純なGoogle検索として上記の説明に従ってプレイストアにアクセスできます。 –

    +0

    @KetanAhir "意図を使ってカメラアプリを開くのに必要な許可または機能がありません"ということは、Androidがこれを処理するように真であり、最初の点にカメラの最初の点を確認して元の質問を「デフォルトカメラを開く」でした。 Androidアプリを作成する際には、「アプリの主な機能にカメラが必要な場合はこのアクセス許可を追加する必要があります。実際にカメラを搭載している端末にGoogle Playストアでアプリが表示されるようにする必要があります。良い古いAndroidのプログラミングの実践:) –

    0
    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    

    startActivityForResult(cameraIntent、CAMERA_PIC_REQUEST)をオーバーライドする必要があります方法があります。

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_PIC_REQUEST && resultCode==RESULT_OK) { 
         Bitmap image = (Bitmap) data.getExtras().get("data"); 
         // do whatever you want with the image now} 
    } 
    
    関連する問題