回答
如果這發生在自定義相機活動中,我懷疑多線程(或實際上,缺少它)。如果你在UI線程上打開攝像頭,那麼pictureTaken()
回調也將在同一個線程上調用,凍結UI(令人不快,但也許可以容忍)以及任何BT服務通信,這可能會對後者造成致命的影響。
第一種治療方法是將BT與第二線進行通信,因爲也可能存在其他互鎖條件。
其次,在次要事件線程上打開相機(請參閱example),然後相機回調將不會凍結使用UI線程的UI和服務。
當Camera活動進入屏幕時,您的活動可能會被破壞。其中一個原因是內存限制,對此你可以做些什麼。另一個原因可能是您的活動重新開始橫向(請注意,相機活動固定爲橫向)。當你的活動結束後,服務沒有理由保持活力。
修復它的方法是:在您的應用程序內使用「自定義相機」確保您的活動處理方向更改而不重新啓動;即使活動被破壞,也要安排BT服務堅持下去。
感謝您的回答!然而,當新的相機活動被創建時,藍牙連接實際上保持開啓狀態,並且只有當點擊「捕捉」按鈕時,纔會關閉藍牙連接,並調用Camera.PictureCallback。這是爲什麼? – shannon
我很困惑。您是否使用[MediaStore.ACTION_IMAGE_CAPTURE](http://developer.android.com/reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE)意圖,或者您調用[Camera.takePicture()](http:// developer。 android.com/reference/android/hardware/Camera.html#takePicture(android.hardware.Camera.ShutterCallback,%20android.hardware.Camera.PictureCallback,%20android.hardware.Camera.PictureCallback,%20android.hardware.Camera.PictureCallback ))在你的活動? –
我用Camera.takePicture()。這是一個自定義的相機活動。 – shannon
- 1. 嘗試連接到藍牙服務器時拒絕連接
- 2. 藍牙服務
- 3. Iphone拍照時使用相機拍照時
- 4. Android藍牙:連接()/斷開()
- 5. 藍牙LE在暫停時斷開
- 6. 嘗試拍照時Android崩潰
- 7. 藍牙SPP和其他藍牙服務
- 8. Android打開服務中的藍牙
- 9. 當藍牙斷開連接時顯示通知 - Android
- 10. iOS - 當藍牙設備斷開連接時收到通知
- 11. Android - 寫一個打開相機並拍攝照片的測試
- 12. 拍照定製相機
- 13. Canon SDK。從相機拍照
- 14. Android:相機不會拍照
- 15. Android相機SurfaceView拍照
- 16. Android:相機問題(拍照)
- 17. PhoneGap的相機拍照
- 18. 從相機拍攝照片
- 19. iOS拍照相機問題
- 20. 用安卓相機拍照
- 21. 用相機拍照或者使用手機拍照選擇
- 22. Android相機無法拍攝來自後臺服務的照片
- 23. 拍照後照相機未保存
- 24. NullPointerException當我嘗試測試已實現的藍牙功能
- 25. 嘗試通過藍牙發送命令時藍牙連接失敗
- 26. 支持藍牙的照相機可以連接到iPhone/iPad
- 27. 通過藍牙控制手機相機
- 28. 組織藍牙LE服務
- 29. iOS藍牙服務建議
- 30. 藍牙服務問題
感謝您的回答!它通過創建一個單獨的線程來打開相機:) – shannon