我需要使用FlashMode Off显示Android原生相机(使用意图)。
我已经读过,意图参数不会得到保证结果,因为它取决于电话设备的实现。
有人可以确认一下吗?我找不到关于那个的官方信息
String fileName = "new-photo-name.jpg";
//create parameters for Intent with filename
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
values.put(MediaStore.Images.Media.DESCRIPTION, "Image capture by camera");
//imageUri is the current activity attribute
Uri imageUri = getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
//create new Intent
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra("android.intent.extras.FLASH_MODE_OFF",1);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, 1);
答案 0 :(得分:1)
为此你应该这样做:
检查闪光灯是否亮起 可用与否?
如果是,则关闭/开启
如果没有,那么你可以根据你的应用做任何事情。 需要
对于检查设备中的闪存可用性:
您可以使用以下
context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
如果闪光灯可用则返回true,否则返回false。
有关详细信息,请参阅http://developer.android.com/reference/android/content/pm/PackageManager.html。
打开/关闭手电筒:
我用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。
例如
用于打开相机闪光灯的代码段。
Camera cam = Camera.open();
Parameters p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.startPreview();
关闭相机指示灯的代码段。
cam.stopPreview();
cam.release();