Tôi đang cố gắng viết một ứng dụng yêu cầu đèn flash LED để chuyển sang chế độ đèn pin. Vấn đề là, Android 2.1 không hỗ trợ chế độ này và do đó tôi chưa thể hỗ trợ nền tảng này. Sẽ không phải là một vấn đề, nhưng tôi đang viết nó cho vị hôn phu của tôi và 4G Epic của cô ấy chỉ có 2.1 ngay bây giờ. Tôi tìm thấy một số mẫu mã sử dụng một số cuộc gọi API không có giấy tờ và do đó làm việc trên Motorola Droid và như vậy, nhưng chúng không hoạt động trên Epic. Có ai có một số gợi ý về nơi để tìm để tìm mã mà sẽ giúp tôi có được điều này làm việc?Camera.Parameters.FLASH_MODE_TORCH thay thế cho Android 2.1
Trả lời
Tôi nhận thấy rằng chế độ đèn pin thường hoạt động tốt trên phiên bản 2.1 nhưng tôi đã gặp phải vấn đề tương tự với Samsung Epic và đã tìm thấy một sự cố xung quanh nó.
Nhìn vào các tham số được trả về bởi Camera.getParameters() khi chạy trên Samsung Epic, tôi nhận thấy rằng chế độ flash mà nó yêu cầu hỗ trợ là: flash-mode-values = off, on, auto;
chế độ đèn pin không được liệt kê, ngụ ý rằng nó không được hỗ trợ.
Tuy nhiên, tôi thấy rằng mô hình này vẫn chấp nhận chế độ đó và WOULD sẽ bật đèn LED! Tin xấu là khi sau đó thiết lập chế độ flash trở lại tự động hoặc tắt đèn LED vẫn sáng! Nó sẽ không tắt cho đến khi bạn gọi Camera.release().
Tôi đoán đó là lý do tại sao Samsung không đưa nó vào danh sách được hỗ trợ!?!
... Vì vậy, phương pháp tôi sử dụng để chuyển ngọn đuốc trong một CameraHelper lớp là ...
/***
* Attempts to set camera flash torch/flashlight mode on/off
* @param isOn true = on, false = off
* @return boolean whether or not we were able to set it
*/
public boolean setFlashlight(boolean isOn)
{
if (mCamera == null)
{
return false;
}
Camera.Parameters params = mCamera.getParameters();
String value;
if (isOn) // we are being ask to turn it on
{
value = Camera.Parameters.FLASH_MODE_TORCH;
}
else // we are being asked to turn it off
{
value = Camera.Parameters.FLASH_MODE_AUTO;
}
try{
params.setFlashMode(value);
mCamera.setParameters(params);
String nowMode = mCamera.getParameters().getFlashMode();
if (isOn && nowMode.equals(Camera.Parameters.FLASH_MODE_TORCH))
{
return true;
}
if (! isOn && nowMode.equals(Camera.Parameters.FLASH_MODE_AUTO))
{
return true;
}
return false;
}
catch (Exception ex)
{
MyLog.e(mLOG_TAG, this.getClass().getSimpleName() + " error setting flash mode to: "+ value + " " + ex.toString());
}
}
Các hoạt động sử dụng này gọi nó là như sau ...
private void toggleFlashLight()
{
mIsFlashlightOn = ! mIsFlashlightOn;
/**
* hack to fix an issue where the Samsung Galaxy will turn torch on,
* even though it says it doesnt support torch mode,
* but then will NOT turn it off via this param.
*/
if (! mIsFlashlightOn && Build.MANUFACTURER.equalsIgnoreCase("Samsung"))
{
this.releaseCameraResources();
this.initCamera();
}
else
{
boolean result = mCamHelper.setFlashlight(mIsFlashlightOn);
if (! result)
{
alertFlashlightNotSupported();
}
}
}
Các ma thuật mà làm cho công việc này trong releaseCameraResources() là nó gọi Camera.release() .... và sau đó tôi phải reinitialize tất cả các công cụ máy ảnh của tôi cho các thiết bị Samsung.
Không đẹp nhưng có vẻ đang hoạt động với nhiều người dùng.
Lưu ý rằng tôi có báo cáo về chế độ đèn pin không hoạt động chút nào với mã này trên Nexus nhưng đã có thể tìm hiểu nó. Nó chắc chắn hoạt động trên HTC EVO và Samsung Epic.
Hy vọng điều này sẽ hữu ích.
Trong trường hợp của tôi cho các thiết bị Samsung Tôi cần thiết để thiết lập chế độ tập trung đến vô cùng và nó bắt đầu làm việc
params.setFocusMode(Camera.Parameters.FOCUS_MODE_INFINITY);
mCamera.setParameters(params);
mCamera.startPreview();
Cảm ơn rất nhiều cho các gợi ý :) Tôi đã có một vấn đề với đèn flash không hoạt động trên Galaxy S 5 với chế độ lấy nét "tự động", thiết lập nó để "vô cùng" đã làm các trick: p – Kervala
- 1. Android 2.1 vs 2.2
- 2. Nexus One - Bản phát hành Android 2.1, WHERE là SDK dành cho 2.1 ở đâu?
- 3. Android - thay thế cho OpenCV?
- 4. Android thay thế cho Line2D?
- 5. Thay thế cho MediaStore.Playlists.Members.moveItem
- 6. Xây dựng thư viện Android mở cho nền tảng 2.1
- 7. Sử dụng các quyền mà Android 2.1 không biết (trên Android 2.1)
- 8. Lựa chọn thay thế TestFlight cho Android
- 9. Android WebView thay thế cho webapps
- 10. Thay thế cho AbsoluteLayout trong Android?
- 11. Thay thế cho "FLAG_BLUR_BEHIND" trong Android?
- 12. Drawable.setColorFilter() không hoạt động trên Android 2.1
- 13. PopupMenu trong Android 2.1 API 7
- 14. Mọi phương án thay thế cho CachingHttpClient dành cho Android?
- 15. Thay thế cho mã Facebook không dùng nữa cho Android
- 16. Robolectric 2.1 và Eclipse
- 17. Giảm kích thước của Thanh Đánh giá trong Android 2.1
- 18. Thay thế cho SimpleCursorAdapter?
- 19. Tùy chọnPhương pháp thay thế cho API tương thích Android?
- 20. Cách thay thế cho các chuỗi trong Android
- 21. Lựa chọn thay thế cho java trên android
- 22. Android: Thay thế cho Ngữ cảnh không được chấp nhận.MODE_WORLD_READABLE?
- 23. Thay thế cho cảm biến định hướng Android là gì?
- 24. Giả lập Android thay thế
- 25. Làm thế nào để so sánh ngày hệ thống với mydate trong Android 2.1?
- 26. Android MediaPlayer setNextMediaPlayer() thay thế
- 27. Android thay thế bằng regex
- 28. lỗi xconfig faces-config.xml cho phiên bản 2.1
- 29. Thay thế, thay thế hoặc thay thế tốt nhất cho ASIHTTP cho hàng đợi tải xuống
- 30. GWT 2.1 Cây hoặc CellTree?
Không chắc chắn nếu tôi đã làm điều gì sai, nhưng tôi nhận được một Force Close khi tôi cố gắng để gỡ lỗi nó. – smccloud
Không có hành vi phạm tội, nhưng chức năng cơ bản trên điện thoại không phải là cách lý tưởng để đi. Ai biết được những chức năng nào của điện thoại SAMSUNG sẽ có từ nửa năm trở lên chẳng hạn? – ajacian81
Tôi đã sử dụng mã của bạn. Nhưng đèn pin camera sẽ tự động tắt sau vài giây. Tôi đã thử nghiệm mã trong samsung galaxy ace 2.2.1 .. điều gì có thể là lý do cho điều đó? –