2011-12-15 5 views
0
public class CameraintentActivity extends Activity { 

    String _path, sliderpather; 
    Button button; 
    Intent intent; 
    Uri outputFileUri; 
    File file; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     button = (Button)findViewById(R.id.button1); 

     _path = Environment.getExternalStorageDirectory().getName() + File.separatorChar + "make_machine_example.jpg"; 
     file = new File(_path); 
     outputFileUri = Uri.fromFile(file); 

     intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 

     button.setOnClickListener(
      new OnClickListener() 
      { 
       public void onClick(View v) 
       { 
        startActivityForResult(intent, 0); 
       } 
      } 
     ); 
    } 
} 

が動作していない、写真を撮り、そして私の目的のディレクトリに画像が保存されますが、それは動作していない...カメラの意図は、単にそれがカメラを引っ張るので、私は私のアプリをしたい

とはいパラメータMediaStore.EXTRA_OUTPUTため/// URI:AndroidManifest.xmlには、ファイルを送信していない

CAMERA WRITE_INTERNAL_STORAGE WRITE_EXTERNAL_STORAGE 
+1

「動作していません」は、何が起こっているのかについての非常に正確な説明ではありません。あなたは何を見ますか? –

+0

カメラはデフォルトのディレクトリに画像を保存し続けます。デフォルトの名前は、自分が望むディレクトリの名前と同じです。 – user1092428

+0

あなたはこの質問の答えを見ましたか? http://stackoverflow.com/questions/2729267/android-camera-intent – ethan

答えて

0

次の権限が含まれています。コンテンツリゾルバURIが必要です。 javadocから:

"要求された画像またはビデオを格納するために使用されるコンテンツリゾルバUriを示すために使用される、意図の名前。

ContentResolverを読むと、そのメカニズムを使って情報を保存する方法がわかります。現在、あなたはそれを間違った方法を行っているカメラの活動に

File f = new File(Environment.getExternalStorageDirectory(), "hello.jpg"); 
Uri outputFileUri = Uri.fromFile(f); 
intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
startActivityForResult(intent, 0);   

を正しいURIを渡すためのコードの下

0

使用。 @Sean Owenが提案したように、間違ったURIを送信しています。

関連する問題