2016-04-26 21 views
0

自分の画像を撮影したカメラを検出して、そのタイプ(フロント/リアカメラ)に応じて値を初期化します。使用しているカメラの検出(前面または背面のカメラ)

私が試したことは、私がアプリを実行した後、値は常に0.417です!

public class Home extends Activity { 
double value = 0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.MainActivity); 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 

    input = new EditText(this); 
    builder.setView(input); 

    builder.setPositiveButton("Next", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int witch) { 
      Intent camera_intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      File file = getFile(); 
      camera_intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); 
      startActivityForResult(camera_intent, CAM_REQUEST); 
     } 
    }); 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAM_REQUEST && resultCode == RESULT_OK) { 
      Intent intent = new Intent(this, Enrollment.class); 
      Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); 
      if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { 
       this.value = 0.417; 
      } 
      else if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK){ 
       this.value = 0.5; 
      } 
      startActivity(intent);     
    } 
} 

私はちょうどカメラの種類(正面か背面)を決定する必要があります。

答えて

2

画像が正面カメラ、後ろ向きカメラ、または他のもの(IPカメラ、偽の画像など)から来たものかどうかを知る方法がありません。イメージキャプチャをサードパーティのアプリケーションに委任しています。そのサードパーティのアプリケーションが行うことは、そのアプリの開発者とユーザーまでです。

+0

どのカメラを知ることができないのですか?私は時間がかかっても方法があるかどうかを知る必要があります –

+2

@SheikhahMaasher: "どのカメラを知ることができないのですか?" - 正しい。 「カメラのハードウェアAPIを使用して自分のカメラアプリを作成する(例えば、android.hardware.Camera'を実行すると、時間がかかっても方法があるかどうかを知る必要があります。 – CommonsWare

+0

私はこれに** CommonsWare **に同意しています。さらに、あなたは "あなたの写真を撮るのを恐れるべきではありません"あなた自身のカメラアプリを書くか、写真を撮るためのアクティビティがあります。これは、標準のCamera APIではあまり難しくありません。 –

0

私はこれが保証された解決策ではないと言いますが、少なくともあなたに何かを与えるべきです。各画像ファイルにはExifInterfaceがあり、画像のさまざまな詳細がリストされます。カメラライブラリを使用して、イメージのフィールド(焦点距離など)と物理的なハードウェア値を比較することができます。

関連する問題