我正试图在小部件中使用相机LED手电筒.我已经找到了关于这个主题的几个主题(即后面提到的那个 ......),现在我正试图控制灯光使用:
Camera cam = Camera.open();
Parameters p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.release();
Run Code Online (Sandbox Code Playgroud)
在AndroidManifest.xml中尝试了不同的权限,目前我有:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
Run Code Online (Sandbox Code Playgroud)
我正在Galaxy Tab上测试这个,因为我手头没有任何其他Android设备:灯没亮.所以我现在有几个问题:
感谢您的任何见解!
顺便说一句,我很快就通过快速设置进行了测试,这里提到了几次.手电筒也不能用于快速设置.
请注意,Galaxy Tab stil使用android 2.2.我看到2.2和2.3之间有一些变化.
评论:我知道它必须以某种方式工作,因为我发现市场上的其他应用程序与Galaxy Tab完美配合.
评论2:如果我设置了cam.setParameters(p); 并使用getFlashMode()直接向相机询问当前状态,它正确返回FLASH_MODE_TORCH.但是,如果我释放相机并重新打开它,它将返回FLASH_MODE_OFF.这几乎就像Camera对象知道了请求,但并没有真正将它传递给硬件!?
-
康斯坦丁评论后,我删除了cam.release(); 部分.他是对的,如果你松开相机,设置就不会持续存在.如果再次使用cam.open(),您将获得一个关闭灯的新实例.尽管如此,光还没有在星系标签上工作.所以,如果你试图通过一个小部件来控制它,我想很难保持亮点.一旦后台服务完成,相机对象就会自动释放,因此灯会再次关闭.我的问题仍然存在,特别是为什么相机不能在一开始就打开.
我目前正致力于手电筒开/关.我收到此错误java.lang.RuntimeException: Fail to connect to camera service
我不知道为什么会发生此错误.我提到了许多解决方案,但我的问题仍未解决.当手电筒打开时,不会发生错误,但是当手电筒关闭时则会发生错误.
我的代码主要代码.
我的清单许可:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus"/>
Run Code Online (Sandbox Code Playgroud) 我正在开发一个用于打开/关闭手机摄像头的小部件.
我创建了一个可以像切换按钮(开/关)一样工作的小部件.
行为如下所示:当我启用小部件时,有时候led灯仍然亮着.但它不会打开/关闭相机,但它会改变图标.
我无法弄清楚实际问题是什么.
在Activity(火炬之光应用程序)中同样适用.
任何人都可以解释我如何解决我的问题?
我哪里错了?
你可以查看我到目前为止所做的代码
onUpdate
方法
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
//super.onUpdate(context, appWidgetManager, appWidgetIds);
remoteViews = new RemoteViews( context.getPackageName(), R.layout.widgetlayout);
watchWidget = new ComponentName( context, FlashLightWidget.class );
Intent intentClick = new Intent(context,FlashLightWidget.class);
intentClick.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, ""+appWidgetIds[0]);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, appWidgetIds[0],intentClick, 0);
remoteViews.setOnClickPendingIntent(R.id.myToggleWidget, pendingIntent);
appWidgetManager.updateAppWidget( watchWidget, remoteViews );
ctx=context;
}
Run Code Online (Sandbox Code Playgroud)
onReceive
方法如下:
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
remoteViews = new RemoteViews( context.getPackageName(), R.layout.widgetlayout);
if (intent.getAction()==null) …
Run Code Online (Sandbox Code Playgroud) android widget android-widget android-camera android-appwidget
有没有办法设置我想要的LED强度?我知道打开我使用的LED:
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mycam.setParameters(p);
Run Code Online (Sandbox Code Playgroud)
但是这段代码只是打开了LED.但有没有办法为LED设置不同的强度以获得更强的光线或降低光线强度?
如此多的LED手电筒API问题适用于Android.我不敢问另一个,但是这里......
使用经过验证的真实FLASH_MODE_TORCH,我可以满足我的三星Galaxy SII并启用LED闪光灯.在我朋友的Galaxy Nexus上,没有这样的运气.也不是我的另一个朋友的Droid X.
我注意到似乎需要特定的本机IOCTL调用的设备数量不是很少.这是Galaxy Nexus的情况吗?我如何找到编程参考?
我正在做标准的FLASH_MODE_TORCH /"flash-mode"="torch",startPreview()链.
令人失望的是,这个看似标准的API似乎并不是那么普遍.
我正在使用相机LED灯FLASH_MODE_ON
.
三星Galaxy Ace只有三种闪光模式:开,关和自动.
FLASH_MODE_TORCH
不适用于三星Galaxy Tab和三星Galaxy Ace 2.2.1
这是我的代码如何打开我的相机LED
Camera cam;
cam = Camera.open();
Parameters params = cam.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_ON);
cam.setParameters(params);
cam.startPreview();
cam.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});
Run Code Online (Sandbox Code Playgroud)
并通过使用以下来关闭它:
cam.stopPreview();
cam.release();
Run Code Online (Sandbox Code Playgroud)
代码参考:在Android中使用相机手电筒
但问题是LED灯仅持续5秒钟.然后它会自动关闭.
任何人都可以告诉问题可能在哪里.或者任何方式连续打开LED灯直到它要求停止.
我正在寻找Android相机LED闪光灯的帮助,以改变它的强度像这个应用程序.
我检查了以下链接,但我没有得到确切的结果.
我无法执行此链接(对我来说似乎很有希望).
任何帮助是极大的赞赏.
android android-intent android-hardware flashlight android-sdk-2.3
我正在开发一款需要打开Galaxy Nexus设备手电筒的应用程序.我在这里提到了这个帖子
Galaxy Nexus上的LED手电筒可通过什么API控制?
public class TestCamera extends Activity implements SurfaceHolder.Callback{
Camera mCamera;
public static SurfaceView preview;
public static SurfaceHolder mHolder;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
preview = (SurfaceView) findViewById(R.id.camSurface);
mHolder = preview.getHolder();
mCamera = Camera.open();
try {
mCamera.setPreviewDisplay(mHolder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Button onLEDbtn = (Button) findViewById(R.id.onLED_btn);
onLEDbtn.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_SHORT).show();
Parameters params = mCamera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(params);
mCamera.startPreview();
} …
Run Code Online (Sandbox Code Playgroud) 我正在开发一种功能,可以将手电筒切换为开/关状态。几天前,我们在io2019中看到了来自Google的新库。我想出了一个主意,为什么不使用它。
一段时间后,我看不出有任何可能使用库中唯一的割炬。
即使在官方文档中,我也找不到适合我的任何有用信息,而且,他们中的示例应用程序也不必处理我的案件。
您是否有一些容易实现的想法,或者您知道如何使用CameraX做到这一点?
我担心使用camera或camera2,因为要粘贴的代码量太糟糕了。
友情链接:
[1] https://developer.android.com/training/camerax
[2] https://proandroiddev.com/android-camerax-preview-analyze-capture-1b3f403a9395
[3] https://github.com/android/camera/tree/master/CameraXBasic
[4] https://github.com/android/camera/tree/master/CameraXBasic
CameraX是一个Android Jetpack库,旨在简化相机开发。
我有两个使用相机的应用程序:
手电筒应用程序打开相机,打开闪光灯,然后在后台运行.但是,如果在手电筒开启时启动相机应用程序,相机应用程序中会出现错误,因为相机已被手电筒应用程序使用:
无法获得设备
在手电筒应用程序中,如何在其他应用程序请求时释放相机?