2015-10-21 63 views
2

如何通過程序中的意圖關閉相機的閃光燈?如何通過編程方式在Android中通過意圖關閉相機的閃光燈?

我使用下面的代碼激活相機應用程序,然後拍照並回到我的應用程序。

String packageName = takePictureIntent.resolveActivity(packageManager).getPackageName(); 
if (mPhotoFileUri != null) 
     getActivity().grantUriPermission(packageName, mPhotoFileUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION); 
      takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mPhotoFileUri); 

startActivityForResult(takePictureIntent, TAKE_PICTURE); 

我想在默認打開時關閉相機閃光燈。它的可能性如何?

建議將:-)

回答

0

理解開啓/關閉手機攝像頭LED手電筒或在Android中,你可以使用下列內容:

Camera camera = Camera.open(); 
Parameters p = camera.getParameters(); 
p.setFlashMode(Parameters.FLASH_MODE_OFF); 
camera.setParameters(p); 
camera.stopPreview(); 

而且,不能忘了在把下列權限AndroidManifest.xml中。

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 

編輯-1:

不幸的是,在使用相機意圖時,你可以設置的唯一額外的參數是

MediaStore.EXTRA_OUTPUT 

我猜你不能改變通過Intent。從this question

+0

謝謝,Astuter!此代碼適用於自定義相機嗎?如何將這些參數傳遞給Camera應用程序?我不想在我的應用程序中創建自己的相機。我想更改相機應用程序的設置。這個代碼有可能嗎? –

0

參考爲此,您應該做的,如:

1)檢查閃光燈是否可用呢?

2)如果是,那麼關閉/開啓

3)如果沒有,那麼你可以任何根據您的應用程序做。需要

對於設備檢查閃光的可用性:

您可以使用以下

context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); 

如果Flash可將返回true,否則爲false。

有關更多信息,請參見link

對於打開/關閉手電筒:

我GOOGLE了出去,上了這個約android.permission.FLASHLIGHT。 Android清單的許可看起來很有希望:

<!-- Allows access to the flashlight --> 
<permission android:name="android.permission.FLASHLIGHT" 
      android:permissionGroup="android.permission-group.HARDWARE_CONTROLS" 
      android:protectionLevel="normal" 
      android:label="@string/permlab_flashlight" 
      android:description="@string/permdesc_flashlight" /> 

然後利用Camera並設置Camera.Parameters。這裏使用的主要參數是FLASH_MODE_TORCH。

例如,

Code Snippet打開相機閃光燈。

Camera cam = Camera.open();  
Parameters p = cam.getParameters(); 
p.setFlashMode(Parameters.FLASH_MODE_TORCH); 
cam.setParameters(p); 
cam.startPreview(); 

代碼片斷關閉攝像頭指示燈。

cam.stopPreview(); 
    cam.release(); 

問題:

也有一些問題,同時打開/關閉手電筒。例如。對於沒有FLASH_MODE_TORCH的設備或者即使有,手電筒也不會打開等。

通常,三星會造成很多問題。

您可以參考有關在下面的列表中給出問題:

1)Use camera flashlight in Android

2)Turn ON/OFF Camera LED/flash light in Samsung Galaxy Ace 2.2.1 & Galaxy Tab

參考鏈接: How to turn on camera flash light programmatically in Android?

+0

謝謝!此代碼適用於自定義相機嗎?如何將這些參數傳遞給Camera應用程序?我不想在我的應用程序中創建自己的相機。我想更改相機應用程序的設置。這個代碼有可能嗎? –

相關問題