7

哪个适用于 phonegap android 的条码扫描仪插件也适用于前置摄像头?

4

1 回答 1

10

要使 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/ 获取

如果出现问题,请确保您已将内容复制LibraryProjectBarcodeLibrary

更新您的项目

现在您可以更新您的项目以使用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/wwwsrc/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
于 2013-06-19T00:27:06.240 回答