Zxing条形码扫描仪插件,适用于Phonegap安卓,无法在只有前置摄像头的Nexus 7上运行



哪个适用于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/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.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

最新更新