카메라 이벤트 받기 동적, 정적 BroadCastReceiver 받기 |
|
1. 브로드캐스트를 정적, 동적으로 구성할때의 차이를 확인한다.
2. com.android.camera.NEW_PICTURE 및 android.hardware.action.NEW_PICTURE 을 Nuga(7.0)에서는 동적 브로드 캐스트로 만 수신 할수 있다. 그외의 Action은 동적 정적 모두 가능.
3. 안드로이드 6.0 이하 에서만 NEW_PICTURE을 정적(Manifest)으로 수신 할수 있다.
- 앱은
ACTION_NEW_PICTURE
또는ACTION_NEW_VIDEO
브로드캐스트를 송수신할 수 없습니다. 이 최적화는 Android 7.0을 대상으로 하는 앱뿐 아니라 모든 앱에 영향을 미칩니다. - Android 7.0부터 사용 불가 상태~
NEW_PICTURE 정적(Static) BroadCastReceiver 로 받기 |
정적으로 구성시 Manifest를 이용하여, 할당한다.
▶ | Mainifest.xml 등록 |
리시버 등록 및 카메라 퍼미션 추가.
▶ | BroadCast Receiver.java |
New Picture 액션을 수신 하여, 저장 경로를 확인한다.
NEW_PICTURE 동적(Dynamic) BroadCastReceiver 로 받기 |
동적으로 구성시 Context를 받아서 할당한다. Context 종료시 수신 받을수 없다.
▶ | OnCreate() 에서 Context를 수신 받아 등록한다. |
소 부연 설명
▶ | Dynamic BroadCastReceiver를 이용한 코드 |
▶ | 참고 (API 24 부터, Action_new_picture 및 Action_new_video 는 deprecated 되었음. |
https://developer.android.com/about/versions/nougat/android-7.0-changes.html?hl=ko
하기 Action 24 부터 deprecated 되었음.
https://developer.android.com/reference/android/hardware/Camera.html?hl=ko#ACTION_NEW_PICTURE
added in API level 14ACTION_NEW_PICTURE
String ACTION_NEW_PICTUREThis constant was deprecated in API level 24.
This broadcast is no longer delivered by the system; useJobInfo.Builder
.addTriggerContentUri(JobInfo.TriggerContentUri)
instead. Broadcast Action: A new picture is taken by the camera, and the entry of the picture has been added to the media store.getData()
is URI of the picture.Constant Value: "android.hardware.action.NEW_PICTURE"
ACTION_NEW_VIDEO
added in API level 14String ACTION_NEW_VIDEOThis constant was deprecated in API level 24.
This broadcast is no longer delivered by the system; useJobInfo.Builder
.addTriggerContentUri(JobInfo.TriggerContentUri)
instead. Broadcast Action: A new video is recorded by the camera, and the entry of the video has been added to the media store.getData()
is URI of the video.Constant Value: "android.hardware.action.NEW_VIDEO"
'안드로이드' 카테고리의 다른 글
[안드로이드] 네비게이션 바 숨김 효과 만들기 (0) | 2021.04.07 |
---|---|
[안드로이드] 종료 작업관리자 에서도 안보이게 (0) | 2017.06.05 |
[안드로이드] Doze(잠자기) 모드 분석 (1) | 2017.04.21 |
[안드로이드] Broadcast 를 이용한 앱간 통신 (0) | 2017.04.19 |
안드로이드 다른 어플리케이션 종료 시키기 (2) | 2014.10.08 |