同时使用相同的活动两次

时间:2016-05-05 16:57:06

标签: android android-activity permissions appcelerator appcelerator-titanium

我使用Appcelerator Studio,我的项目有2个不同的模块,但是那些共享相同的android权限(在tiapp.xml中定义),一个用于将相机嵌入到UIView中,另一个用于启用Torch中的手电筒模式,都需要使用相机权限。

我不认为有一个解决方案可以不改变模块本身,对吗?

这是我得到的日志:

[DEBUG] :  CameraViewProxy: Camera not available
[ERROR] :  CameraViewProxy: Camera is null. Make sure
[ERROR] :  CameraViewProxy:     <uses-permission android:name="android.permission.CAMERA" />
[ERROR] :  CameraViewProxy: is in you tiapp.xml file.

依赖于此的问题:

LED & Camera always ON

1 个答案:

答案 0 :(得分:2)

相机是一个具有许多功能的复杂对象 - 但每个相机都被API视为一个整体(即大多数设备只有两个相机对象。)

听起来您正试图从程序的某个部分使用其中一个功能(闪光灯/手电筒LED),以及从程序的其他部分使用其他功能(拍照或至少预览)。

相机无法正常工作。

当您成功拨打Camera camera = Camera.open();方法时,您拥有整个摄像头,直到您拨打camera.release();Camera.open();的任何其他呼叫都将失败,直至您释放摄像头。

因此,您需要找到一种方法来共享模块之间单个打开的Camera对象。

一种简单的方法是使用Singleton模式。 [还有其他选择,但它们往往更复杂。]

无论您做什么,您都需要确保如果您的应用程序不在“顶部”,则您已将相机释放给其他应用程序使用。