2014-02-10 9 views
0

하드웨어 카메라 버튼 누르기를 시뮬레이트하기 위해 다음 인 텐트를 보냅니다. 이 코드는 서비스에서 실행 중입니다. 처음으로이 코드를 실행하면 (임의의 화면에 표시됨) 예상대로 기본 카메라 앱이 열립니다. 하지만 카메라 앱에서이 코드를 다시 실행하면 예상대로 사진이 찍히지 않습니다. 그냥 카메라 응용 프로그램을 다시로드합니다. 문제는 다음과 같습니다.Android - 시뮬레이션 카메라 버튼을 누르면 카메라 앱이 열리지 만 사진이 찍히지 않습니다.

기본 카메라 앱이 사진을 찍게하려면 어떻게해야합니까? (사용자 개입 없음).

 long eventtime = SystemClock.uptimeMillis(); 
     Intent downIntent = new Intent(Intent.ACTION_CAMERA_BUTTON, null); 
     KeyEvent downEvent = new KeyEvent(eventtime, eventtime, 
     KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_CAMERA, 0); 
     downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent); 
     sendOrderedBroadcast(downIntent, "android.permission.CAMERA"); 

     Intent upIntent = new Intent(Intent.ACTION_CAMERA_BUTTON, null); 
     KeyEvent upEvent = new KeyEvent(eventtime+100, eventtime+100, 
     KeyEvent.ACTION_UP, KeyEvent.KEYCODE_CAMERA, 0); 
     upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent); 
     sendOrderedBroadcast(upIntent, "android.permission.CAMERA"); 

(내가 권한이 정말 필요하다 생각하지 않는다)

답변

0

아니, 당신은 카메라 앱을 실행하기 위해 카메라 권한이 필요하지 않습니다. 그러나 시스템이 시뮬레이션 된 카메라 프레스에서 카메라 앱을 열 것이라고 보장 할 수는 없으며 사용자가 제어하는 ​​환경 설정입니다. developer.android.com과 같이

님, MediaStore.ACTION_IMAGE_CAPTURE을 사용하는 것이 좋습니다 :

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

에도이 코드 인해 안드로이드의 open Intent model에, 다른 응용 프로그램이 아닌 주식 카메라를로드 할 수 있습니다.

<action android:name="android.media.action.IMAGE_CAPTURE"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
+0

이 그냥 exists..the 사용자가 사진을 촬영하기 버튼을 클릭해야 TI 경우 카메라 응용 프로그램을 엽니 다 : 그것은 의 AndroidManifest.xml 일부 활동에 대한 <intent-filter>에 다음 두 줄이있는 모든 응용 프로그램. 이미 질문에 언급 한대로 내가하려는 것은 카메라 버튼 이벤트를 시뮬레이트하여 사용자 간섭없이 사진을 찍는 것입니다. 나는 "열린 카메라 앱", "카메라 버튼 누르기"가 포함 된 작업으로 Tasker에서이 작업을 수행 할 수 있으므로 가능하다는 것을 알고 있습니다. – Anonymous

+0

먼저, 팁 주셔서 감사합니다. _Tasker_와 함께 다음 몇 시간을 보낼 것입니다. –

+0

둘째, 시도하면 "사진 가져 오기"작업에 스톡 카메라 앱이 사용되지 않는다는 것을 알 수 있습니다. 사용자 정의 액티비티를 시작하고 앞면 또는 뒷면 카메라, 해상도, 지연 등을 선택할 수 있습니다. –