我已经制作了一个小工具,它使用相机作为它的手电筒,它可以完美地打开和关闭,并在人们实际关闭它时释放它,但是如果我打开它然后我去相机,它当然会崩溃相机应用程序,如果用户忘记关闭手电筒,我该如何释放相机?有没有办法检测新应用程序何时即将启动,然后再调用相机?
答案 0 :(得分:2)
根据我的研究,这在默认的Android设备上是不可能的,三星用他们的一个应用实现了这个,但这很可能是由于他们增强了基本的Android功能。然而,这意味着他们需要发布有关如何实现这一目标的文档,并且只能在他们启用此功能的手机上运行。
如果其他人有一个实际有用的答案,而不是说明为什么不能这样做,我很乐意接受它,我会把它留在这里,希望其他人看到它并且不要浪费时间研究这个主题。
*编辑,如果谷歌会以某种方式更新操作系统以允许应用程序检查相机是否被使用,如果是,为了释放它,那么这很容易就可以工作,但唉,我们必须等待它们。或者在Iphone上开发,不需要联系相机来访问闪光灯。
答案 1 :(得分:0)
将以下代码放入您的onDestroy()
活动方法中:
protected void onDestroy(){
if(camera!=null){
camera.stopPreview();
camera.setPreviewCallback(null);
camera.release();
camera = null;
}
}
如果您使用单独的Preview类,则在其中添加以下代码:
public void surfaceDestroyed(SurfaceHolder holder) {
if(camera!=null){
camera.stopPreview();
camera.setPreviewCallback(null);
camera.release();
camera = null;
}
}