哪个适用于Phonegap Android的条形码扫描仪插件也适用于前置摄像头?
要使Cordova/PhoneGap BarcodeScanner插件工作,您需要比大多数其他插件走得更远。
我的大部分工作都是在 Eclipse 之外完成的,所以我将解释如何从终端完成此操作,如果您需要的话,我会添加 Eclipse 注释(只需询问(。
克隆插件项目
如果你还没有,从github获取phonegap插件项目:
git clone git://github.com/phonegap/phonegap-plugins.git
(我们假设它们被克隆到:/home/mike/phonegap-plugins
(
另外,让我们假设您的项目出于此答案的目的被称为/home/mike/CordovaProject
。
然后将/home/mike/phonegap-plugins/Android/BarcodeScanner/2.2.0/LibraryProject
的内容复制到/home/mike/BarcodeLibrary
这将包含 zxing 库项目作为可用活动,检查您是否/home/mike/BarcodeLibrary
内部有AndroidManifest.xml, ant.properties, assets, bin...
等。
我已经用 Nexus 7 检查过这一点,插件中包含的 zxing 库代码工作正常。 (这是zxing 2.1而不是2.2(
可以将zxing 库src/com/google/zxing...
代码替换为 2.2 下载中的代码,但这是不必要的,需要额外的工作/测试。
更新库以使用安卓 SDK
您将需要更新/home/mike/BarcodeLibrary
项目使用
android update project /home/mike/BarcodeLibrary
如果需要指定目标(SDK版本(,则可以获取一个列表,执行以下操作: android list target
顺便说一下,这假设你已经安装了安卓sdk。从 http://developer.android.com/sdk/获取
如果出现问题,请确保已将LibraryProject
的内容复制到BarcodeLibrary
更新您的项目
现在,您可以更新项目以使用BarcodeLibrary
。将这些复制到您的项目中:
phonegap-plugins/Android/BarcodeScanner/2.2.0/assets/www/barcodescanner.js
phonegap-plugins/Android/BarcodeScanner/2.2.0/src/com/phonegap/plugins/barcodescanner/BarcodeScanner.java
分别分为assets/www
和src/com/phonegap/plugins/barcodescanner
。
项目属性/库引用
现在您需要更新project.properties
以包含BarcodeLibrary
,编辑它以包含新行:
android.library.reference.1=../BarodeLibrary/
(如果要引用更多库,则需要对它们进行编号,以允许对编译依赖项进行排序。
请注意,如果您想将库直接包含在主项目中,您可以将其复制到文件夹中,例如。 /home/mike/BarcodeLibrary/external/BarcodeLibrary
然后,引用将是:
android.library.reference.1=external/BarodeLibrary/
这取决于您,将其保留在相邻的文件夹中可以轻松重用和单独维护。将其放置在项目本身中可以简化版本控制和持续集成。
更新安卓清单
您现在需要更新您的AndroidManifest.xml
权限
将这些权限添加到<manifest>
(如果尚未包含(:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
特征
如果尚未包含这些功能,请将这些功能添加到<manifest>
:
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera.flash" android:required="false"/>
条形码活动节点
将此活动节点添加到底部的<application>
内。
<activity android:name="com.google.zxing.client.android.CaptureActivity"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden"
android:exported="false">
<intent-filter>
<action android:name="com.phonegap.plugins.barcodescanner.SCAN"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
配置.xml
项目的 res/config.xml 将需要指定的条形码插件。只需将以下行添加到插件节点即可。
<plugin name="BarcodeScanner" value="com.phonegap.plugins.barcodescanner.BarcodeScanner"></plugin>
做。。。
您应该能够继续构建项目:
ant debug
或
cordova/run