2

カメラで写真を撮りたいだけです - (それは機能します)

それをさらに使用するには、意図が画像を保存したパスが必要です。しかし、ファイルをどこに置くべきかをインテントに伝えたくありません。(これは、ファイルが自動的に作成されるためです。

カメラを起動する関数は次のとおりです

public void doCam() {
    Intent i = new Intent("android.media.action.IMAGE_CAPTURE");
    // startActivityForResult(intent,0);

    try {
        startActivityForResult(i, TAKEPICTURE_ACTIVITY);
    } catch (ActivityNotFoundException e) {
        Toast.makeText(this, "Application not available",
                Toast.LENGTH_SHORT).show();
    }
    // Log.e(TAG, "Error in taking picture");
}

そして、結果の取得がここにあり、文字列アドレスに写真の名前のパスが必要です

すでにさまざまな解決策を見つけましたが、写真を撮る前にファイル名を選択する必要がありました->そのため、アプリは写真の名前を決定しました。

 public void onActivityResult(int requestCode, int resultCode, Intent intent) {

    if (requestCode == TAKEPICTURE_ACTIVITY) {

        // super.onActivityResult(requestCode, resultCode, intent);
        if (resultCode == RESULT_OK) {

            Bundle extras = intent.getExtras();
            Bitmap bitmap = (Bitmap) extras.get("data");
            //doesn't work
            String address= (String) extras.get("EXTRA_OUTPUT");
4

2 に答える 2

0

パスはintent.getData()try it で見つける必要があります。そこにパスがない場合は、カメラに強制的にビデオをカスタムの場所に保存させることを検討する必要があります。

于 2012-06-21T19:50:58.760 に答える
-2

これは、最近キャプチャされた画像のパスを取得する方法です。

    try{
    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
    } catch(Exception e){
        e.printStackTrace();
    }

そして onActivityResult() メソッドで:

     String path=null;
            try{
                Bitmap thumbnail = (Bitmap) data.getExtras().get("data"); 
                path=getLastImagePath();
            } catch(Exception e){
            }
于 2012-06-22T06:24:48.040 に答える