哪个适用于 phonegap android 的条码扫描仪插件也适用于前置摄像头?
1 回答
要使 Cordova/PhoneGap BarcodeScanner 插件工作,您需要比使用大多数其他插件更进一步。
我的大部分工作都是在 Eclipse 之外完成的,所以我将解释如何从终端完成这项工作,如果您需要,我将添加 Eclipse 注释(只需询问即可。)
克隆插件项目
如果您还没有,请从 github 获取 phonegap-plugins 项目:
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库项目作为可用活动,检查您是否有AndroidManifest.xml, ant.properties, assets, bin...
etc. inside /home/mike/BarcodeLibrary
。
我已经用 Nexus 7 进行了检查,插件中包含的 zxing 库代码工作正常。(哪个是 zxing 2.1 而不是 2.2)
可以用 2.2 下载的代码替换 zxing 库代码src/com/google/zxing...
,但这是不必要的,需要额外的工作/测试。
更新库以使用 Android SDK
您将需要更新/home/mike/BarcodeLibrary
项目使用
android update project /home/mike/BarcodeLibrary
如果您需要指定一个目标(SDK 版本),您可以获得一个列表:android list target
顺便说一句,这假设您已经安装了 android 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
您现在需要更新您的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>
配置文件
项目的res/config.xml将需要指定的条形码插件。只需将以下行添加到插件节点。
<plugin name="BarcodeScanner" value="com.phonegap.plugins.barcodescanner.BarcodeScanner"></plugin>
完毕...
您应该能够继续构建项目:
ant debug
或者
cordova/run