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); 
       } 
      } 
     ); 
    } 
} 

Я хочу, чтобы мое приложение так тянет камеру, фотографирует и сохраняет изображение в мой нужный каталог, но это не работает ...Намерение камера просто не работает

и да AndroidManifest.xml содержит следующие разрешения

CAMERA WRITE_INTERNAL_STORAGE WRITE_EXTERNAL_STORAGE 
+1

«Не работает» - это не очень точное утверждение о том, что происходит. Что ты видишь? –

+0

Камера просто сохраняет снимки в каталоге по умолчанию с именами по умолчанию, расположенными в нужном каталоге. – user1092428

+0

Вы посмотрели ответы на этот вопрос? http://stackoverflow.com/questions/2729267/android-camera-intent – ethan

ответ

0

Вы не посланные файл: /// URI для параметра MediaStore.EXTRA_OUTPUT. Вам нужен URI-результирующий контент. Из javadoc:

«Имя Дополнительного дополнения, используемого для указания разрешителя контента Uri, который будет использоваться для хранения запрошенного изображения или видео».

Прочитайте на ContentResolver s, чтобы узнать, как использовать этот механизм для хранения информации.

0

Используйте ниже код, чтобы передать правильный URI для деятельности камеры

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);   

В настоящее время вы делаете это неправильный путь. Как сказал @Sean Owen, вы отправляете неправильный uri.

Смежные вопросы