113 Commits
Author SHA1 Message Date
junv 12be23d657 update version 2014-02-10 10:03:27 +08:00
junv 12ecfd7f55 update version 2014-02-10 09:54:20 +08:00
junv 933525da37 try to fix issue 2014-02-10 09:51:30 +08:00
junv 7ad74807c3 Merge remote-tracking branch 'origin/huserben-master' 2014-02-08 16:08:35 +08:00
Ryan Willoughby 4ed50488b6 [1.2.0] upped version 2013-11-27 15:07:57 -08:00
Jakob GillichandRyan Willoughby 91d7e9aa4a window.plugins is not defined anymore, replaced it with cordova.plugins
Reproduced in 3.1, see #60
2013-11-27 15:02:42 -08:00
huserben eab15a370a Updated Plugin, refactored some library parts, added description to read me 2013-11-09 20:35:15 +01:00
huserben a7bf6fc2c0 added windows phone version 2013-11-09 12:38:54 +01:00
Jakob Gillich 7d831d83ed window.plugins is not defined anymore, replaced it with cordova.plugins
Reproduced in 3.1, see #60
2013-10-30 16:53:40 +01:00
Andrew Grieve ec4de624ae Add missing iOS framework "QuartzCore" to plugin.xml 2013-10-03 15:11:25 -04:00
Ryan Willoughby ba3c96c386 [js] plugin.xml asset backwards compat 2013-09-27 10:49:55 -07:00
Ryan Willoughby 24acf29896 [plugin.xml] corrected supported cordova versions 2013-09-26 16:43:13 -07:00
Ryan Willoughby a310fda2d7 delete plugin.xml.generate.php 2013-09-12 15:41:33 -07:00
Ryan Willoughby 8bf3cce073 Use <js-module> in favour of <asset> for the JS
Merge branch 'js_module' of https://github.com/agrieve/BarcodeScanner

Conflicts:
	README.md
	plugin.xml
2013-09-12 15:38:05 -07:00
Ryan Willoughby 2d8701634f [readme] fixed encode syntax typo 2013-09-11 15:03:53 -07:00
Ryan Willoughby 7880bf7b5c [android][0.7.2] remove busted menu items
+ fixes #11
2013-09-11 13:58:26 -07:00
Ryan Willoughby 12a31b76b0 [0.7.1] upped version 2013-09-10 16:12:46 -07:00
Ryan Willoughby a2857ba5f8 [README] fix typo 2013-09-10 15:38:49 -07:00
Ryan Willoughby f046f651ce Merge branch 'ios_warnings' of https://github.com/agrieve/BarcodeScanner into agrive-ios_warnings 2013-09-10 13:48:35 -07:00
Andrew Grieve 6ad6dafc11 Use <js-module> in favour of <asset> for the JS.
This bumps the version to 1.0 since it's a non-backwards compatible
change.
2013-09-05 15:13:13 -04:00
Andrew Grieve 14d63e35ac Fix plugin for iOS on Cordova 3.0 by disabling ARC and using newer plugin signature. 2013-09-05 15:12:15 -04:00
Andrew Grieve d901977064 Fix some compile warnings on iOS 2013-09-05 11:13:36 -04:00
Ryan Willoughby 7094cc6eda [0.7.0] upped version 2013-08-15 11:25:20 -07:00
Eccenux fc3dcd56d1 Cordova 2.8
Based on http://wiki.apache.org/cordova/DeprecationPolicy
2013-08-05 14:29:56 +02:00
Eccenux 50a2f8bf52 minor
spaces instead of tabs, re-added missing license.
2013-08-05 14:17:05 +02:00
Eccenux 8966e5207f Merge remote-tracking branch 'upstream/master'
Conflicts (resolved):
	plugin.xml
	src/android/README.md
2013-07-30 21:00:14 +02:00
Eccenux 8fa142ca9d ident 2013-07-29 14:39:35 +02:00
Eccenux 6fd905a8e6 Encode object access fix. 2013-07-29 14:38:23 +02:00
Eccenux 32880fc1fa 3.0 fixed README.md 2013-07-25 18:06:59 +02:00
Eccenux 903b02f142 typo 2013-07-25 17:50:03 +02:00
Eccenux 6fdac151eb Fix for https://issues.apache.org/jira/browse/CB-4379 2013-07-25 16:15:09 +02:00
Eccenux c84bf0e66d Changes for crodova 3.0
Updates based mostly on:
http://simonmacdonald.blogspot.fr/2013/06/why-dont-my-plugins-work-in-phonegap.html
2013-07-24 18:41:40 +02:00
Eccenux e728d33155 PG 3.0 changes 2013-07-24 15:01:50 +02:00
Ryan Willoughby 1242c55142 [readme] correct ios supported formats 2013-07-18 15:15:03 -07:00
Ryan Willoughby 3b1ad506b2 [readme] plugman not pluginstall 2013-07-18 14:43:29 -07:00
Ryan Willoughby fab895ab30 [0.6.0] upped version 2013-07-16 17:37:36 -07:00
EccenuxandRyan Willoughby c5c60c8856 app_name fix 2013-07-16 17:37:36 -07:00
EccenuxandRyan Willoughby 5b01acb999 Update README.md
minor
2013-07-16 17:37:35 -07:00
EccenuxandRyan Willoughby db30964d51 minor refactoring ;-) 2013-07-16 17:37:35 -07:00
EccenuxandRyan Willoughby 6e29489982 plugin spec. update 2013-07-16 17:37:35 -07:00
EccenuxandRyan Willoughby 8c50a121e8 Update to 4.3.1 2013-07-16 17:37:34 -07:00
Brett Rudd e2cef45cb8 [plugin.xml] update license tag 2013-07-09 12:21:12 -07:00
Ryan Willoughby c24882311f [plugin.xml] license tag 2013-07-08 16:34:44 -07:00
Eccenux 5833a1fa9e Merge branch 'master' of https://github.com/Eccenux/BarcodeScanner 2013-07-08 19:47:01 +02:00
Eccenux 9ed602fdac app_name fix 2013-07-08 19:43:24 +02:00
Eccenux 06b05fc6c9 Update README.md
minor
2013-07-08 19:14:18 +02:00
Eccenux 2f86c728e5 minor refactoring ;-) 2013-07-08 19:09:45 +02:00
Eccenux 01a74e4c6c plugin spec. update 2013-07-06 13:49:50 +02:00
Ryan Willoughby 18f2f7a9fe [0.5.4] upped version 2013-07-04 14:18:37 -07:00
Eccenux cf2be813cb Update to 4.3.1 2013-07-04 20:29:22 +02:00
Ryan Willoughby 10d66a4e67 Merge branch 'master' of github.com:wildabeast/BarcodeScanner 2013-06-24 12:29:40 -07:00
Ryan Willoughby 27d6d653fc [readme] reference plugman not pluginstall 2013-06-24 12:28:13 -07:00
Ryan Willoughby 4efcc86a24 [plugin-xml] added engines 2013-06-24 12:28:13 -07:00
Ryan WilloughbyandRyan Willoughby 4d38047b41 [plugin-xml] Add description 2013-06-24 12:28:13 -07:00
Ryan Willoughby af21cd20f6 [readme] reference plugman not pluginstall 2013-06-24 12:09:49 -07:00
Ryan Willoughby e38147f27f [plugin-xml] added engines 2013-06-24 11:26:05 -07:00
Ryan Willoughby b45ce29fec [0.5.3] upped version 2013-06-18 17:38:27 -07:00
Ryan Willoughby 77d4a3dda2 [spec] update specs to cordova.require/define 2013-06-18 17:38:27 -07:00
Ryan Willoughby 6f4e09be4f [plugman] plugman don't like spec/config.xml
+ upped version to 0.5.2
2013-06-18 17:38:27 -07:00
Ryan Willoughby b0747cadce [plugin-xml] Add description 2013-06-18 16:59:28 -06:00
Ryan Willoughby 3332885acd [0.5.3] upped version 2013-06-14 17:32:20 -07:00
Ryan Willoughby 2331218b5a [spec] update specs to cordova.require/define 2013-06-10 16:36:11 -07:00
Ryan Willoughby 7ec3d477c2 [plugman] plugman don't like spec/config.xml
+ upped version to 0.5.2
2013-06-10 15:49:29 -07:00
Ryan Willoughby 3ab188539c [js] cordova.require instead of PhoneGap.require 2013-06-07 16:37:48 -07:00
Ryan WilloughbyandRyan Willoughby d9f9f2dc9b [readme] formatting 2013-06-07 16:37:48 -07:00
Ryan Willoughby ea1586b0ff [js] cordova.require instead of PhoneGap.require 2013-06-05 12:38:57 -07:00
Ryan Willoughby 10f8e6b116 [readme] formatting 2013-05-29 18:13:03 -06:00
Ryan Willoughby 6cf71f0a3e [spec] FIXED IT 2013-05-29 17:08:48 -07:00
Ryan Willoughby 6d95b33987 [spec] 2.5.0 2013-05-29 17:08:48 -07:00
Ryan Willoughby ec5e1dc843 [spec] removing a maybe bunk spec 2013-05-29 17:08:48 -07:00
Ryan Willoughby 507c726215 [spec] removing filsystem init 2013-05-29 17:08:48 -07:00
Ryan Willoughby fceafa235a [spec] more specs 2013-05-29 17:08:48 -07:00
Ryan Willoughby 666387e132 [spec] formatting for medic 2013-05-29 17:08:48 -07:00
Ryan Willoughby eb557c4827 [spec] app id 2013-05-29 17:08:48 -07:00
Ryan Willoughby 33b2e914a4 [spec] Fixed spec 2013-05-29 17:08:48 -07:00
Ryan Willoughby 657ec45122 [spec] app id, title 2013-05-29 17:08:48 -07:00
Ryan Willoughby 52ce70de60 [spec] fixing spec app 2013-05-29 17:08:47 -07:00
Ryan Willoughby ab95b1342d [spec] add barcodescanner.js 2013-05-29 17:08:47 -07:00
Ryan Willoughby 7e7c39dda6 [spec] Initial version of spec 2013-05-29 17:08:47 -07:00
Justin WarkandRyan Willoughby 5c46e8d93f Do not copy the scanned barcode to the clipboard. 2013-05-29 17:08:47 -07:00
Jayson RaymondandRyan Willoughby 3bc65ebbaa readme fix 2013-05-29 17:08:47 -07:00
Jayson RaymondandRyan Willoughby 5d6f0d52f9 Update for Cordova/PhoneGap 2.0 plugins (http://simonmacdonald.blogspot.ca/2012/08/so-you-wanna-write-phonegap-200-android.html) 2013-05-29 17:08:47 -07:00
Fil MajandRyan Willoughby f26cde76f5 fix for a java ref 2013-05-29 17:05:16 -07:00
Fil MajandRyan Willoughby 5d452348da full paths for android 2013-05-29 17:05:16 -07:00
Fil MajandRyan Willoughby 4d8646e26d fully qualified paths 2013-05-29 17:05:16 -07:00
Ryan Willoughby b1f643f6f4 Merge pull request #3 from filmaj/master
cordova-plugman support
2013-05-29 15:35:22 -07:00
Fil Maj 9c533da17e fix for a java ref 2013-05-16 09:09:55 -07:00
Fil Maj f568cc6d3e full paths for android 2013-05-15 19:27:10 -07:00
Fil Maj 215e077510 fully qualified paths 2013-05-14 17:38:30 -07:00
Ryan Willoughby cc0f7d82a1 [spec] FIXED IT 2013-05-10 14:04:27 -07:00
Ryan Willoughby f94c6129ae [spec] 2.5.0 2013-04-24 14:58:29 -07:00
Ryan Willoughby 4579d40dc0 [spec] removing a maybe bunk spec 2013-04-24 14:58:29 -07:00
Ryan Willoughby 40849d52d6 [spec] removing filsystem init 2013-04-24 14:58:29 -07:00
Ryan Willoughby 2f7d652587 [spec] more specs 2013-04-24 14:58:29 -07:00
Ryan Willoughby c1d0b47929 [spec] formatting for medic 2013-04-24 14:58:29 -07:00
Ryan Willoughby 381ee1c6ac [spec] app id 2013-04-24 14:58:29 -07:00
Ryan Willoughby 560cecc5b8 [spec] Fixed spec 2013-04-24 14:58:29 -07:00
Ryan Willoughby a0373c766f [spec] app id, title 2013-04-24 14:58:29 -07:00
Ryan Willoughby f9e3d0cffa [spec] fixing spec app 2013-04-24 14:58:29 -07:00
Ryan Willoughby 604ebdf144 [spec] add barcodescanner.js 2013-04-24 14:58:29 -07:00
Ryan Willoughby 7c47973f78 [spec] Initial version of spec 2013-04-24 14:58:28 -07:00
Bob EasterdayandRyan Willoughby 1661cc4387 update BarcodeScanner plugin for 2.5.0+ 2013-04-24 14:58:28 -07:00
Ryan Willoughby 15b5cb9442 Merge pull request #14 from jwark/do_not_copy_to_clipboard
Android: Do not copy the scanned barcode to the clipboard.
2013-04-11 15:49:55 -07:00
Bob Easterday 58e773af70 update BarcodeScanner plugin for 2.5.0+ 2013-03-28 16:20:14 -07:00
Justin Wark 1d8ee5ca8d Do not copy the scanned barcode to the clipboard. 2013-03-26 12:20:55 +11:00
Ryan Willoughby 3c73e21796 Merge pull request #7 from JaysonRaymond/master
Updates for Cordova/PhoneGap's 2.0 plugins
2013-03-05 11:22:50 -08:00
Ryan Willoughby bb3812c0cb [iOS][2.3.0] add plugin to config.xml for 2.3.0+
+ upped version to 0.3.0
2013-01-31 17:17:26 -08:00
Jayson Raymond c7158af58e readme fix 2013-01-10 15:54:44 -08:00
Jayson Raymond 3f166162a0 Update for Cordova/PhoneGap 2.0 plugins (http://simonmacdonald.blogspot.ca/2012/08/so-you-wanna-write-phonegap-200-android.html) 2013-01-07 15:49:52 -08:00
Ryan Willoughby 029cb4de7d [0.2.2] updated version 2012-12-17 16:46:56 -08:00
Ryan Willoughby 1e2535ad01 [ios] Fixes AVCaptureSession leak, thanks @markus-olsson 2012-12-17 16:45:54 -08:00
Ryan Willoughby 695f524777 [android] syntax error, missing else 2012-12-17 16:40:47 -08:00
Ryan Willoughby 084594d86c [0.2.1][ios] lock scanner to portrait 2012-12-12 13:11:02 -08:00
444 changed files with 26792 additions and 229437 deletions
+29 -18
View File
@@ -1,19 +1,24 @@
BarcodeScanner
==============
Added version that runs with windows mobile devices.
To run on those devices, the zxing.net library must be added to the project (Install as nuget packet - more information on http://www.nuget.org/packages/ZXing.Net)
Windows Phone currently only supports Scaning for codes, feel free to extend it that it can also encode.
Cross-platform BarcodeScanner for Cordova / PhoneGap.
Follows the [Cordova Plugin spec](https://github.com/alunny/cordova-plugin-spec), so that it works with [Pluginstall](https://github.com/alunny/pluginstall).
Follows the [Cordova Plugin spec](https://github.com/apache/cordova-plugman/blob/master/plugin_spec.md), so that it works with [Plugman](https://github.com/apache/cordova-plugman).
Note: the Android source for this project includes an Android Library Project.
pluginstall currently doesn't support Library Project refs, so its been
plugman currently doesn't support Library Project refs, so its been
prebuilt as a jar library. Any updates to the Library Project should be
committed with an updated jar.
## Using the plugin ##
The plugin creates the object `window.plugins.barcodeScanner` with the method `scan(success, fail)`.
The following barcode types are currently supported:
The plugin creates the object `cordova/plugin/BarcodeScanner` with the method `scan(success, fail)`.
The following barcode types are currently supported:
### Android
* QR_CODE
@@ -40,24 +45,28 @@ The following barcode types are currently supported:
* EAN_8
* EAN_13
* CODE_128
* CODE_3
* CODE_39
* ITF
`success` and `fail` are callback functions. Success is passed an object with data, type and cancelled properties. Data is the text representation of the barcode data, type is the type of barcode detected and cancelled is whether or not the user cancelled the scan.
A full example could be:
window.plugins.barcodeScanner.scan( function(result) {
alert("We got a barcode\n" +
"Result: " + result.text + "\n" +
"Format: " + result.format + "\n" +
"Cancelled: " + result.cancelled);
}, function(error) {
alert("Scanning failed: " + error);
}
);
```
cordova.plugins.barcodeScanner.scan(
function (result) {
alert("We got a barcode\n" +
"Result: " + result.text + "\n" +
"Format: " + result.format + "\n" +
"Cancelled: " + result.cancelled);
},
function (error) {
alert("Scanning failed: " + error);
}
);
```
## Encoding a Barcode ##
The plugin creates the object `window.plugins.barcodeScanner` with the method `encode(type, data, success, fail)`.
The plugin creates the object `cordova.plugins.barcodeScanner` with the method `encode(type, data, success, fail)`.
Supported encoding types:
* TEXT_TYPE
@@ -65,14 +74,16 @@ Supported encoding types:
* PHONE_TYPE
* SMS_TYPE
```
A full example could be:
window.plugins.barcodeScanner.encode(BarcodeScanner.Encode.TEXT_TYPE, "http://www.nytimes.com", function(success) {
cordova.plugins.barcodeScanner.encode(BarcodeScanner.Encode.TEXT_TYPE, "http://www.nytimes.com", function(success) {
alert("encode success: " + success);
}, function(fail) {
alert("encoding failed: " + fail);
}
);
```
## Thanks on Github ##
@@ -101,4 +112,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
THE SOFTWARE.
+170 -117
View File
@@ -1,112 +1,194 @@
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
<?xml version="1.0" encoding="UTF-8"?><plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
id="com.phonegap.plugins.barcodescanner"
version="0.2.0">
version="1.2.0">
<name>BarcodeScanner</name>
<description>Scans Barcodes.</description>
<license>MIT</license>
<engines>
<engine name="cordova" version=">=3.0.0" />
</engines>
<js-module src="www/barcodescanner.js" name="BarcodeScanner">
<clobbers target="cordova.plugins.barcodeScanner" />
</js-module>
<asset src="www/barcodescanner.js" target="barcodescanner.js" />
<!-- ios -->
<platform name="ios">
<plugins-plist key="BarcodeScanner" string="CDVBarcodeScanner" />
<resource-file src="scannerOverlay.xib" />
<!-- Cordova >= 2.8 -->
<config-file target="config.xml" parent="/*">
<feature name="BarcodeScanner">
<param name="ios-package" value="CDVBarcodeScanner" />
</feature>
</config-file>
<header-file src="zxing-all-in-one.h" />
<resource-file src="src/ios/scannerOverlay.xib" />
<source-file src="CDVBarcodeScanner.mm" />
<source-file src="zxing-all-in-one.cpp" />
<header-file src="src/ios/zxing-all-in-one.h" />
<source-file src="src/ios/CDVBarcodeScanner.mm" compiler-flags="-fno-objc-arc" />
<source-file src="src/ios/zxing-all-in-one.cpp" />
<framework src="libiconv.dylib" />
<framework src="AVFoundation.framework" />
<framework src="AssetsLibrary.framework" />
<framework src="CoreVideo.framework" />
<framework src="QuartzCore.framework" />
</platform>
<platform name="wp7">
<config-file target="config.xml" parent="/*">
<feature name="BarcodeScanner">
<param name="wp-package" value="BarcodeScanner"/>
</feature>
</config-file>
<source-file src="src/wp/BarcodeScanner.cs" />
<source-file src="src/wp/BarcodeScannerResult.cs" />
<source-file src="src/wp/Scan.xaml.cs" />
<source-file src="src/wp/Scan.xaml" />
</platform>
<platform name="wp8">
<config-file target="config.xml" parent="/*">
<feature name="BarcodeScanner">
<param name="wp-package" value="BarcodeScanner"/>
</feature>
</config-file>
<source-file src="src/wp/BarcodeScanner.cs" />
<source-file src="src/wp/BarcodeScannerResult.cs" />
<source-file src="src/wp/Scan.xaml.cs" />
<source-file src="src/wp/Scan.xaml" />
</platform>
<!-- android -->
<platform name="android">
<source-file src="com/phonegap/plugins/barcodescanner/BarcodeScanner.java" target-dir="src/com/phonegap/plugins/barcodescanner" />
<source-file src="src/android/com/phonegap/plugins/barcodescanner/BarcodeScanner.java" target-dir="src/com/phonegap/plugins/barcodescanner" />
<!--
<source-file src="R.java" target-dir="src/com/google/zxing/client/android" />
-->
<!--
<config-file target="res/xml/plugins.xml" parent="/plugins">
<plugin name="BarcodeScanner"
value="com.phonegap.plugins.barcodescanner.BarcodeScanner"/>
<plugin name="BarcodeScanner" value="com.phonegap.plugins.barcodescanner.BarcodeScanner"/>
</config-file>
-->
<config-file target="res/xml/config.xml" parent="/cordova/plugins">
<plugin name="BarcodeScanner"
value="com.phonegap.plugins.barcodescanner.BarcodeScanner"/>
<config-file target="res/xml/config.xml" parent="/*">
<feature name="BarcodeScanner">
<param name="android-package" value="com.phonegap.plugins.barcodescanner.BarcodeScanner" />
</feature>
</config-file>
<config-file target="AndroidManifest.xml" parent="/manifest/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"
<activity
android:name="com.google.zxing.client.android.CaptureActivity"
android:screenOrientation="landscape"
android:clearTaskOnLaunch="true"
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>
<activity
android:name="com.google.zxing.client.android.encode.EncodeActivity"
android:label="@string/share_name">
<intent-filter>
<action android:name="com.phonegap.plugins.barcodescanner.ENCODE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="com.phonegap.plugins.barcodescanner.SCAN"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name="com.google.zxing.client.android.encode.EncodeActivity" android:label="@string/share_name">
<intent-filter>
<action android:name="com.phonegap.plugins.barcodescanner.ENCODE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name="com.google.zxing.client.android.HelpActivity" android:label="@string/share_name">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</config-file>
<config-file target="AndroidManifest.xml" parent="/manifest">
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<!-- Not required to allow users to work around this -->
<uses-feature android:name="android.hardware.camera" android:required="false" />
</config-file>
<source-file src="com.google.zxing.client.android.captureactivity.jar" target-dir="libs"/>
<source-file src="src/android/com.google.zxing.client.android.captureactivity.jar" target-dir="libs"/>
<!--
LibraryProject/res/*.*
search: (src/android/LibraryProject/(.+?)/[^/]+)$
replace: <source-file src="$1" target-dir="$2"/>
-->
<source-file src="LibraryProject/res/drawable/launcher_icon.png" target-dir="res/drawable"/>
<source-file src="LibraryProject/res/drawable/share_via_barcode.png" target-dir="res/drawable"/>
<source-file src="LibraryProject/res/drawable/shopper_icon.png" target-dir="res/drawable"/>
<source-file src="LibraryProject/res/drawable-hdpi/launcher_icon.png" target-dir="res/drawable-hdpi"/>
<source-file src="LibraryProject/res/drawable-hdpi/shopper_icon.png" target-dir="res/drawable-hdpi"/>
<source-file src="LibraryProject/res/raw/beep.ogg" target-dir="res/raw"/>
<source-file src="LibraryProject/res/layout/bookmark_picker_list_item.xml" target-dir="res/layout"/>
<source-file src="LibraryProject/res/layout/capture.xml" target-dir="res/layout"/>
<source-file src="LibraryProject/res/layout/encode.xml" target-dir="res/layout"/>
<source-file src="LibraryProject/res/layout/help.xml" target-dir="res/layout"/>
<source-file src="LibraryProject/res/layout/network.xml" target-dir="res/layout"/>
<source-file src="LibraryProject/res/layout/search_book_contents.xml" target-dir="res/layout"/>
<source-file src="LibraryProject/res/layout/search_book_contents_header.xml" target-dir="res/layout"/>
<source-file src="LibraryProject/res/layout/search_book_contents_list_item.xml" target-dir="res/layout"/>
<source-file src="LibraryProject/res/layout/share.xml" target-dir="res/layout"/>
<source-file src="LibraryProject/res/layout-land/encode.xml" target-dir="res/layout-land"/>
<source-file src="LibraryProject/res/layout-land/share.xml" target-dir="res/layout-land"/>
<source-file src="LibraryProject/res/layout-ldpi/capture.xml" target-dir="res/layout-ldpi"/>
<source-file src="LibraryProject/res/xml/preferences.xml" target-dir="res/xml"/>
<source-file src="LibraryProject/res/values/attrs.xml" target-dir="res/values"/>
<source-file src="LibraryProject/res/values/colors.xml" target-dir="res/values"/>
<source-file src="LibraryProject/res/values/ids.xml" target-dir="res/values"/>
<source-file src="src/android/LibraryProject/res/drawable/launcher_icon.png" target-dir="res/drawable"/>
<source-file src="src/android/LibraryProject/res/drawable/share_via_barcode.png" target-dir="res/drawable"/>
<source-file src="src/android/LibraryProject/res/drawable/shopper_icon.png" target-dir="res/drawable"/>
<source-file src="src/android/LibraryProject/res/drawable-hdpi/launcher_icon.png" target-dir="res/drawable-hdpi"/>
<source-file src="src/android/LibraryProject/res/drawable-hdpi/shopper_icon.png" target-dir="res/drawable-hdpi"/>
<source-file src="src/android/LibraryProject/res/drawable-xhdpi/launcher_icon.png" target-dir="res/drawable-xhdpi"/>
<source-file src="src/android/LibraryProject/res/drawable-xxhdpi/launcher_icon.png" target-dir="res/drawable-xxhdpi"/>
<source-file src="src/android/LibraryProject/res/layout/bookmark_picker_list_item.xml" target-dir="res/layout"/>
<source-file src="src/android/LibraryProject/res/layout/capture.xml" target-dir="res/layout"/>
<source-file src="src/android/LibraryProject/res/layout/encode.xml" target-dir="res/layout"/>
<source-file src="src/android/LibraryProject/res/layout/help.xml" target-dir="res/layout"/>
<source-file src="src/android/LibraryProject/res/layout/history_list_item.xml" target-dir="res/layout"/>
<source-file src="src/android/LibraryProject/res/layout/search_book_contents.xml" target-dir="res/layout"/>
<source-file src="src/android/LibraryProject/res/layout/search_book_contents_header.xml" target-dir="res/layout"/>
<source-file src="src/android/LibraryProject/res/layout/search_book_contents_list_item.xml" target-dir="res/layout"/>
<source-file src="src/android/LibraryProject/res/layout/share.xml" target-dir="res/layout"/>
<source-file src="src/android/LibraryProject/res/layout-land/encode.xml" target-dir="res/layout-land"/>
<source-file src="src/android/LibraryProject/res/layout-land/share.xml" target-dir="res/layout-land"/>
<source-file src="src/android/LibraryProject/res/layout-ldpi/capture.xml" target-dir="res/layout-ldpi"/>
<source-file src="src/android/LibraryProject/res/menu/capture.xml" target-dir="res/menu"/>
<source-file src="src/android/LibraryProject/res/menu/encode.xml" target-dir="res/menu"/>
<source-file src="src/android/LibraryProject/res/menu/history.xml" target-dir="res/menu"/>
<source-file src="src/android/LibraryProject/res/raw/beep.ogg" target-dir="res/raw"/>
<source-file src="src/android/LibraryProject/res/values/arrays.xml" target-dir="res/values"/>
<source-file src="src/android/LibraryProject/res/values/colors.xml" target-dir="res/values"/>
<source-file src="src/android/LibraryProject/res/values/dimens.xml" target-dir="res/values"/>
<source-file src="src/android/LibraryProject/res/values/ids.xml" target-dir="res/values"/>
<source-file src="src/android/LibraryProject/res/values-ar/strings.xml" target-dir="res/values-ar"/>
<source-file src="src/android/LibraryProject/res/values-bg/strings.xml" target-dir="res/values-bg"/>
<source-file src="src/android/LibraryProject/res/values-ca/strings.xml" target-dir="res/values-ca"/>
<source-file src="src/android/LibraryProject/res/values-cs/strings.xml" target-dir="res/values-cs"/>
<source-file src="src/android/LibraryProject/res/values-da/strings.xml" target-dir="res/values-da"/>
<source-file src="src/android/LibraryProject/res/values-de/strings.xml" target-dir="res/values-de"/>
<source-file src="src/android/LibraryProject/res/values-el/strings.xml" target-dir="res/values-el"/>
<source-file src="src/android/LibraryProject/res/values-es/strings.xml" target-dir="res/values-es"/>
<source-file src="src/android/LibraryProject/res/values-eu/strings.xml" target-dir="res/values-eu"/>
<source-file src="src/android/LibraryProject/res/values-fi/strings.xml" target-dir="res/values-fi"/>
<source-file src="src/android/LibraryProject/res/values-fr/strings.xml" target-dir="res/values-fr"/>
<source-file src="src/android/LibraryProject/res/values-he/strings.xml" target-dir="res/values-he"/>
<source-file src="src/android/LibraryProject/res/values-hi/strings.xml" target-dir="res/values-hi"/>
<source-file src="src/android/LibraryProject/res/values-hu/strings.xml" target-dir="res/values-hu"/>
<source-file src="src/android/LibraryProject/res/values-id/strings.xml" target-dir="res/values-id"/>
<source-file src="src/android/LibraryProject/res/values-it/strings.xml" target-dir="res/values-it"/>
<source-file src="src/android/LibraryProject/res/values-iw/strings.xml" target-dir="res/values-iw"/>
<source-file src="src/android/LibraryProject/res/values-ja/strings.xml" target-dir="res/values-ja"/>
<source-file src="src/android/LibraryProject/res/values-ko/strings.xml" target-dir="res/values-ko"/>
<source-file src="src/android/LibraryProject/res/values-nl/strings.xml" target-dir="res/values-nl"/>
<source-file src="src/android/LibraryProject/res/values-pl/strings.xml" target-dir="res/values-pl"/>
<source-file src="src/android/LibraryProject/res/values-pt/strings.xml" target-dir="res/values-pt"/>
<source-file src="src/android/LibraryProject/res/values-ru/strings.xml" target-dir="res/values-ru"/>
<source-file src="src/android/LibraryProject/res/values-sk/strings.xml" target-dir="res/values-sk"/>
<source-file src="src/android/LibraryProject/res/values-sl/strings.xml" target-dir="res/values-sl"/>
<source-file src="src/android/LibraryProject/res/values-sv/strings.xml" target-dir="res/values-sv"/>
<source-file src="src/android/LibraryProject/res/values-tr/strings.xml" target-dir="res/values-tr"/>
<source-file src="src/android/LibraryProject/res/values-zh-rCN/strings.xml" target-dir="res/values-zh-rCN"/>
<source-file src="src/android/LibraryProject/res/values-zh-rTW/strings.xml" target-dir="res/values-zh-rTW"/>
<source-file src="src/android/LibraryProject/res/xml/preferences.xml" target-dir="res/xml"/>
<!-- plugman cannot merge - prepare manual merge -->
<config-file target="res/values/strings.xml" parent="/resources">
<!-- string name="app_name">Barcode Scanner</string -->
<string name="app_picker_name">Applications</string>
<string name="bookmark_picker_name">Bookmarks</string>
<string name="button_add_calendar">Add to calendar</string>
@@ -114,18 +196,16 @@
<string name="button_back">Back</string>
<string name="button_book_search">Book Search</string>
<string name="button_cancel">Cancel</string>
<string name="button_clipboard_empty">Clipboard empty</string>
<string name="button_custom_product_search">Custom search</string>
<string name="button_dial">Dial number</string>
<string name="button_done">Done</string>
<string name="button_email">Send email</string>
<string name="button_get_directions">Get directions</string>
<string name="button_google_shopper">Google Shopper</string>
<string name="button_google_shopper">Shopper</string>
<string name="button_mms">Send MMS</string>
<string name="button_ok">OK</string>
<string name="button_open_browser">Open browser</string>
<string name="button_product_search">Product Search</string>
<string name="button_read_book">Browse book</string>
<string name="button_search_book_contents">Search contents</string>
<string name="button_share_app">Application</string>
<string name="button_share_bookmark">Bookmark</string>
@@ -144,53 +224,59 @@
<string name="contents_sms">SMS address</string>
<string name="contents_text">Plain text</string>
<string name="history_clear_text">Clear history</string>
<string name="history_clear_one_history_text">Clear</string>
<string name="history_email_title">Barcode Scanner history</string>
<string name="history_empty">Empty</string>
<string name="history_empty_detail">No barcode scans have been recorded</string>
<string name="history_send">Send history</string>
<string name="history_title">History</string>
<string name="menu_about">About</string>
<string name="menu_encode_mecard">Use MECARD</string>
<string name="menu_encode_vcard">Use vCard</string>
<string name="menu_help">Help</string>
<string name="menu_history">History</string>
<!-- string name="menu_settings">Settings</string -->
<string name="menu_share">Share</string>
<string name="msg_about">The official Android app of the open source ZXing barcode project.</string>
<string name="msg_buggy">This device has known bugs that cause barcode scanning problems. For more information, visit http://code.google.com/p/zxing/wiki/FrequentlyAskedQuestions</string>
<string name="msg_bulk_mode_scanned">Bulk mode: barcode scanned and saved</string>
<string name="msg_camera_framework_bug">Sorry, the Android camera encountered a problem. You may need to restart the device.</string>
<string name="msg_default_contents">Contents</string>
<string name="msg_default_format">Format</string>
<string name="msg_default_meta">Metadata</string>
<string name="msg_default_mms_subject">Hi</string>
<string name="msg_default_status">Place a barcode inside the viewfinder rectangle to scan it.</string>
<string name="msg_default_time">Time</string>
<string name="msg_default_type">Type</string>
<string name="msg_encode_barcode_failed">Could not generate the requested barcode.</string>
<string name="msg_encode_contents_failed">Could not encode a barcode from the data provided.</string>
<string name="msg_google_books">Google Books</string>
<string name="msg_google_product">Google Product Search</string>
<string name="msg_google_shopper_missing">Google Shopper is not installed</string>
<string name="msg_install_google_shopper">Google Shopper combines barcode scanning with online and local prices, reviews and more without opening the browser. Would you like to try it?</string>
<string name="msg_intent_failed">Sorry, the requested application could not be launched. The barcode contents may be invalid.</string>
<string name="msg_loading_apps">Loading list of applications\u2026</string>
<string name="msg_not_our_results">You are leaving this application. The search results you will see are not related to this application.</string>
<string name="msg_redirect">Redirect</string>
<string name="msg_sbc_book_not_searchable">Sorry, this book is not searchable.</string>
<string name="msg_sbc_failed">Sorry, the search encountered a problem.</string>
<string name="msg_sbc_no_page_returned">No page returned</string>
<string name="msg_sbc_page">Page</string>
<string name="msg_sbc_results">Results</string>
<string name="msg_sbc_searching_book">Searching book\u2026</string>
<string name="msg_sbc_snippet_unavailable">Snippet not available</string>
<string name="msg_sbc_unknown_page">Unknown page</string>
<string name="msg_share_explanation">You can share data by displaying a barcode on your screen and scanning it with another phone.</string>
<string name="msg_share_subject_line">Here are the contents of a barcode I scanned</string>
<string name="msg_share_text">Or type some text and press Enter</string>
<string name="msg_sure">Are you sure?</string>
<string name="msg_unmount_usb">Sorry, the SD card is not accessible.</string>
<string name="preferences_actions_title">When a barcode is found\u2026</string>
<string name="preferences_auto_focus_title">Use auto focus</string>
<string name="preferences_bulk_mode_summary">Scan and save many barcodes continuously</string>
<string name="preferences_bulk_mode_title">Bulk scan mode</string>
<string name="preferences_copy_to_clipboard_title">Copy to clipboard</string>
<string name="preferences_custom_product_search_summary" formatted="false">Use %s as a placeholder for the product ID, and %f for format</string>
<string name="preferences_custom_product_search_summary" formatted="false">Substitutions: %s = contents, %f = format, %t = type</string>
<string name="preferences_custom_product_search_title">Custom search URL</string>
<string name="preferences_decode_1D_title">1D barcodes</string>
<string name="preferences_decode_Data_Matrix_title">Data Matrix</string>
<string name="preferences_decode_QR_title">QR Codes</string>
<string name="preferences_device_bug_workarounds_title">Device Bug Workarounds</string>
<string name="preferences_disable_continuous_focus_summary">Use only standard focus mode</string>
<string name="preferences_disable_continuous_focus_title">No continuous focus</string>
<string name="preferences_disable_exposure_title">No exposure</string>
<string name="preferences_front_light_summary">Improves scanning in low light on some phones, but may cause glare. Does not work on all phones.</string>
<string name="preferences_front_light_title">Use front light</string>
<string name="preferences_general_title">General settings</string>
@@ -198,10 +284,11 @@
<string name="preferences_play_beep_title">Beep</string>
<string name="preferences_remember_duplicates_summary">Store multiple scans of the same barcode in History</string>
<string name="preferences_remember_duplicates_title">Remember duplicates</string>
<string name="preferences_reverse_image_summary">Enable on devices with a front camera only</string>
<string name="preferences_reverse_image_title">Reversed camera image</string>
<string name="preferences_result_title">Result settings</string>
<string name="preferences_scanning_title">When scanning for barcodes, decode\u2026</string>
<string name="preferences_search_country">Search country</string>
<string name="preferences_try_bsplus">Try Barcode Scanner+</string>
<string name="preferences_try_bsplus_summary">Enhanced with new features and interface</string>
<string name="preferences_supplemental_summary">Try to retrieve more information about the barcode contents</string>
<string name="preferences_supplemental_title">Retrieve more info</string>
<string name="preferences_vibrate_title">Vibrate</string>
@@ -218,43 +305,9 @@
<string name="result_wifi">Found WLAN Configuration</string>
<string name="sbc_name">Google Book Search</string>
<string name="share_name">Share via barcode</string>
<string name="title_about">Barcode Scanner v</string>
<string name="wa_name">WLAN Connection</string>
<string name="wifi_changing_network">Changing Network</string>
<string name="wifi_connected">Connected</string>
<string name="wifi_creating_network">Creating Network</string>
<string name="wifi_modifying_network">Modifying Network</string>
<string name="wifi_ssid_missing">Network name missing</string>
<string name="wifi_type_incorrect">Network type incorrect</string>
<string name="wifi_connect_failed">Network connection failed</string>
<string name="wifi_changing_network">Requesting connection to network\u2026</string>
<string name="wifi_ssid_label">Network Name</string>
<string name="wifi_type_label">Type</string>
<string name="zxing_url">http://code.google.com/p/zxing</string>
</config-file>
<source-file src="LibraryProject/res/values-ar/strings.xml" target-dir="res/values-ar"/>
<source-file src="LibraryProject/res/values-bg/strings.xml" target-dir="res/values-bg"/>
<source-file src="LibraryProject/res/values-cs/strings.xml" target-dir="res/values-cs"/>
<source-file src="LibraryProject/res/values-da/strings.xml" target-dir="res/values-da"/>
<source-file src="LibraryProject/res/values-de/strings.xml" target-dir="res/values-de"/>
<source-file src="LibraryProject/res/values-es/strings.xml" target-dir="res/values-es"/>
<source-file src="LibraryProject/res/values-fi/strings.xml" target-dir="res/values-fi"/>
<source-file src="LibraryProject/res/values-fr/strings.xml" target-dir="res/values-fr"/>
<source-file src="LibraryProject/res/values-he/strings.xml" target-dir="res/values-he"/>
<source-file src="LibraryProject/res/values-hu/strings.xml" target-dir="res/values-hu"/>
<source-file src="LibraryProject/res/values-it/strings.xml" target-dir="res/values-it"/>
<source-file src="LibraryProject/res/values-ja-rJP/strings.xml" target-dir="res/values-ja-rJP"/>
<source-file src="LibraryProject/res/values-nl/strings.xml" target-dir="res/values-nl"/>
<source-file src="LibraryProject/res/values-pl/strings.xml" target-dir="res/values-pl"/>
<source-file src="LibraryProject/res/values-pt/strings.xml" target-dir="res/values-pt"/>
<source-file src="LibraryProject/res/values-ru/strings.xml" target-dir="res/values-ru"/>
<source-file src="LibraryProject/res/values-sk/strings.xml" target-dir="res/values-sk"/>
<source-file src="LibraryProject/res/values-sl/strings.xml" target-dir="res/values-sl"/>
<source-file src="LibraryProject/res/values-sv/strings.xml" target-dir="res/values-sv"/>
<source-file src="LibraryProject/res/values-tr/strings.xml" target-dir="res/values-tr"/>
<source-file src="LibraryProject/res/values-zh-rCN/strings.xml" target-dir="res/values-zh-rCN"/>
<source-file src="LibraryProject/res/values-zh-rTW/strings.xml" target-dir="res/values-zh-rTW"/>
</platform>
</plugin>
</plugin>
+57
View File
@@ -0,0 +1,57 @@
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
var scanner;
describe('cordova.require object should exist', function () {
it("should exist", function() {
expect(window.cordova).toBeDefined();
expect(typeof cordova.require == 'function').toBe(true);
});
it("BarcodeScanner plugin should exist", function() {
scanner = cordova.require("cordova/plugin/BarcodeScanner")
expect(scanner).toBeDefined();
expect(typeof scanner == 'object').toBe(true);
});
it("should contain a scan function", function() {
expect(scanner.scan).toBeDefined();
expect(typeof scanner.scan == 'function').toBe(true);
});
it("should contain an encode function", function() {
expect(scanner.encode).toBeDefined();
expect(typeof scanner.encode == 'function').toBe(true);
});
it("should contain three DestinationType constants", function() {
expect(scanner.Encode.TEXT_TYPE).toBe("TEXT_TYPE");
expect(scanner.Encode.EMAIL_TYPE).toBe("EMAIL_TYPE");
expect(scanner.Encode.PHONE_TYPE).toBe("PHONE_TYPE");
expect(scanner.Encode.SMS_TYPE).toBe("SMS_TYPE");
});
/*
it("should call scan successfully", function() {
scanner.scan(function() {}, function() {});
});
*/
});
+101
View File
@@ -0,0 +1,101 @@
jasmine.HtmlReporter = function(_doc) {
var self = this;
var doc = _doc || window.document;
var reporterView;
var dom = {};
// Jasmine Reporter Public Interface
self.logRunningSpecs = false;
self.reportRunnerStarting = function(runner) {
var specs = runner.specs() || [];
if (specs.length == 0) {
return;
}
createReporterDom(runner.env.versionString());
doc.body.appendChild(dom.reporter);
reporterView = new jasmine.HtmlReporter.ReporterView(dom);
reporterView.addSpecs(specs, self.specFilter);
};
self.reportRunnerResults = function(runner) {
reporterView && reporterView.complete();
};
self.reportSuiteResults = function(suite) {
reporterView.suiteComplete(suite);
};
self.reportSpecStarting = function(spec) {
if (self.logRunningSpecs) {
self.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
}
};
self.reportSpecResults = function(spec) {
reporterView.specComplete(spec);
};
self.log = function() {
var console = jasmine.getGlobal().console;
if (console && console.log) {
if (console.log.apply) {
console.log.apply(console, arguments);
} else {
console.log(arguments); // ie fix: console.log.apply doesn't exist on ie
}
}
};
self.specFilter = function(spec) {
if (!focusedSpecName()) {
return true;
}
return spec.getFullName().indexOf(focusedSpecName()) === 0;
};
return self;
function focusedSpecName() {
var specName;
(function memoizeFocusedSpec() {
if (specName) {
return;
}
var paramMap = [];
var params = doc.location.search.substring(1).split('&');
for (var i = 0; i < params.length; i++) {
var p = params[i].split('=');
paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
}
specName = paramMap.spec;
})();
return specName;
}
function createReporterDom(version) {
dom.reporter = self.createDom('div', { id: 'HTMLReporter', className: 'jasmine_reporter' },
dom.banner = self.createDom('div', { className: 'banner' },
self.createDom('span', { className: 'title' }, "Jasmine "),
self.createDom('span', { className: 'version' }, version)),
dom.symbolSummary = self.createDom('ul', {className: 'symbolSummary'}),
dom.alert = self.createDom('div', {className: 'alert'}),
dom.results = self.createDom('div', {className: 'results'},
dom.summary = self.createDom('div', { className: 'summary' }),
dom.details = self.createDom('div', { id: 'details' }))
);
}
};
jasmine.HtmlReporterHelpers.addHelpers(jasmine.HtmlReporter);
+60
View File
@@ -0,0 +1,60 @@
jasmine.HtmlReporterHelpers = {};
jasmine.HtmlReporterHelpers.createDom = function(type, attrs, childrenVarArgs) {
var el = document.createElement(type);
for (var i = 2; i < arguments.length; i++) {
var child = arguments[i];
if (typeof child === 'string') {
el.appendChild(document.createTextNode(child));
} else {
if (child) {
el.appendChild(child);
}
}
}
for (var attr in attrs) {
if (attr == "className") {
el[attr] = attrs[attr];
} else {
el.setAttribute(attr, attrs[attr]);
}
}
return el;
};
jasmine.HtmlReporterHelpers.getSpecStatus = function(child) {
var results = child.results();
var status = results.passed() ? 'passed' : 'failed';
if (results.skipped) {
status = 'skipped';
}
return status;
};
jasmine.HtmlReporterHelpers.appendToSummary = function(child, childElement) {
var parentDiv = this.dom.summary;
var parentSuite = (typeof child.parentSuite == 'undefined') ? 'suite' : 'parentSuite';
var parent = child[parentSuite];
if (parent) {
if (typeof this.views.suites[parent.id] == 'undefined') {
this.views.suites[parent.id] = new jasmine.HtmlReporter.SuiteView(parent, this.dom, this.views);
}
parentDiv = this.views.suites[parent.id].element;
}
parentDiv.appendChild(childElement);
};
jasmine.HtmlReporterHelpers.addHelpers = function(ctor) {
for(var fn in jasmine.HtmlReporterHelpers) {
ctor.prototype[fn] = jasmine.HtmlReporterHelpers[fn];
}
};
+164
View File
@@ -0,0 +1,164 @@
jasmine.HtmlReporter.ReporterView = function(dom) {
this.startedAt = new Date();
this.runningSpecCount = 0;
this.completeSpecCount = 0;
this.passedCount = 0;
this.failedCount = 0;
this.skippedCount = 0;
this.createResultsMenu = function() {
this.resultsMenu = this.createDom('span', {className: 'resultsMenu bar'},
this.summaryMenuItem = this.createDom('a', {className: 'summaryMenuItem', href: "#"}, '0 specs'),
' | ',
this.detailsMenuItem = this.createDom('a', {className: 'detailsMenuItem', href: "#"}, '0 failing'));
this.summaryMenuItem.onclick = function() {
dom.reporter.className = dom.reporter.className.replace(/ showDetails/g, '');
};
this.detailsMenuItem.onclick = function() {
showDetails();
};
};
this.addSpecs = function(specs, specFilter) {
this.totalSpecCount = specs.length;
this.views = {
specs: {},
suites: {}
};
for (var i = 0; i < specs.length; i++) {
var spec = specs[i];
this.views.specs[spec.id] = new jasmine.HtmlReporter.SpecView(spec, dom, this.views);
if (specFilter(spec)) {
this.runningSpecCount++;
}
}
};
this.specComplete = function(spec) {
this.completeSpecCount++;
if (isUndefined(this.views.specs[spec.id])) {
this.views.specs[spec.id] = new jasmine.HtmlReporter.SpecView(spec, dom);
}
var specView = this.views.specs[spec.id];
switch (specView.status()) {
case 'passed':
this.passedCount++;
break;
case 'failed':
this.failedCount++;
break;
case 'skipped':
this.skippedCount++;
break;
}
specView.refresh();
this.refresh();
};
this.suiteComplete = function(suite) {
var suiteView = this.views.suites[suite.id];
if (isUndefined(suiteView)) {
return;
}
suiteView.refresh();
};
this.refresh = function() {
if (isUndefined(this.resultsMenu)) {
this.createResultsMenu();
}
// currently running UI
if (isUndefined(this.runningAlert)) {
this.runningAlert = this.createDom('a', {href: "?", className: "runningAlert bar"});
dom.alert.appendChild(this.runningAlert);
}
this.runningAlert.innerHTML = "Running " + this.completeSpecCount + " of " + specPluralizedFor(this.totalSpecCount);
// skipped specs UI
if (isUndefined(this.skippedAlert)) {
this.skippedAlert = this.createDom('a', {href: "?", className: "skippedAlert bar"});
}
this.skippedAlert.innerHTML = "Skipping " + this.skippedCount + " of " + specPluralizedFor(this.totalSpecCount) + " - run all";
if (this.skippedCount === 1 && isDefined(dom.alert)) {
dom.alert.appendChild(this.skippedAlert);
}
// passing specs UI
if (isUndefined(this.passedAlert)) {
this.passedAlert = this.createDom('span', {href: "?", className: "passingAlert bar"});
}
this.passedAlert.innerHTML = "Passing " + specPluralizedFor(this.passedCount);
// failing specs UI
if (isUndefined(this.failedAlert)) {
this.failedAlert = this.createDom('span', {href: "?", className: "failingAlert bar"});
}
this.failedAlert.innerHTML = "Failing " + specPluralizedFor(this.failedCount);
if (this.failedCount === 1 && isDefined(dom.alert)) {
dom.alert.appendChild(this.failedAlert);
dom.alert.appendChild(this.resultsMenu);
}
// summary info
this.summaryMenuItem.innerHTML = "" + specPluralizedFor(this.runningSpecCount);
this.detailsMenuItem.innerHTML = "" + this.failedCount + " failing";
};
this.complete = function() {
dom.alert.removeChild(this.runningAlert);
this.skippedAlert.innerHTML = "Ran " + this.runningSpecCount + " of " + specPluralizedFor(this.totalSpecCount) + " - run all";
if (this.failedCount === 0) {
dom.alert.appendChild(this.createDom('span', {className: 'passingAlert bar'}, "Passing " + specPluralizedFor(this.passedCount)));
} else {
showDetails();
}
dom.banner.appendChild(this.createDom('span', {className: 'duration'}, "finished in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + "s"));
};
return this;
function showDetails() {
if (dom.reporter.className.search(/showDetails/) === -1) {
dom.reporter.className += " showDetails";
}
}
function isUndefined(obj) {
return typeof obj === 'undefined';
}
function isDefined(obj) {
return !isUndefined(obj);
}
function specPluralizedFor(count) {
var str = count + " spec";
if (count > 1) {
str += "s"
}
return str;
}
};
jasmine.HtmlReporterHelpers.addHelpers(jasmine.HtmlReporter.ReporterView);
+79
View File
@@ -0,0 +1,79 @@
jasmine.HtmlReporter.SpecView = function(spec, dom, views) {
this.spec = spec;
this.dom = dom;
this.views = views;
this.symbol = this.createDom('li', { className: 'pending' });
this.dom.symbolSummary.appendChild(this.symbol);
this.summary = this.createDom('div', { className: 'specSummary' },
this.createDom('a', {
className: 'description',
href: '?spec=' + encodeURIComponent(this.spec.getFullName()),
title: this.spec.getFullName()
}, this.spec.description)
);
this.detail = this.createDom('div', { className: 'specDetail' },
this.createDom('a', {
className: 'description',
href: '?spec=' + encodeURIComponent(this.spec.getFullName()),
title: this.spec.getFullName()
}, this.spec.getFullName())
);
};
jasmine.HtmlReporter.SpecView.prototype.status = function() {
return this.getSpecStatus(this.spec);
};
jasmine.HtmlReporter.SpecView.prototype.refresh = function() {
this.symbol.className = this.status();
switch (this.status()) {
case 'skipped':
break;
case 'passed':
this.appendSummaryToSuiteDiv();
break;
case 'failed':
this.appendSummaryToSuiteDiv();
this.appendFailureDetail();
break;
}
};
jasmine.HtmlReporter.SpecView.prototype.appendSummaryToSuiteDiv = function() {
this.summary.className += ' ' + this.status();
this.appendToSummary(this.spec, this.summary);
};
jasmine.HtmlReporter.SpecView.prototype.appendFailureDetail = function() {
this.detail.className += ' ' + this.status();
var resultItems = this.spec.results().getItems();
var messagesDiv = this.createDom('div', { className: 'messages' });
for (var i = 0; i < resultItems.length; i++) {
var result = resultItems[i];
if (result.type == 'log') {
messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString()));
} else if (result.type == 'expect' && result.passed && !result.passed()) {
messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message));
if (result.trace.stack) {
messagesDiv.appendChild(this.createDom('div', {className: 'stackTrace'}, result.trace.stack));
}
}
}
if (messagesDiv.childNodes.length > 0) {
this.detail.appendChild(messagesDiv);
this.dom.details.appendChild(this.detail);
}
};
jasmine.HtmlReporterHelpers.addHelpers(jasmine.HtmlReporter.SpecView);
+22
View File
@@ -0,0 +1,22 @@
jasmine.HtmlReporter.SuiteView = function(suite, dom, views) {
this.suite = suite;
this.dom = dom;
this.views = views;
this.element = this.createDom('div', { className: 'suite' },
this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(this.suite.getFullName()) }, this.suite.description)
);
this.appendToSummary(this.suite, this.element);
};
jasmine.HtmlReporter.SuiteView.prototype.status = function() {
return this.getSpecStatus(this.suite);
};
jasmine.HtmlReporter.SuiteView.prototype.refresh = function() {
this.element.className += " " + this.status();
};
jasmine.HtmlReporterHelpers.addHelpers(jasmine.HtmlReporter.SuiteView);
+192
View File
@@ -0,0 +1,192 @@
/* @deprecated Use jasmine.HtmlReporter instead
*/
jasmine.TrivialReporter = function(doc) {
this.document = doc || document;
this.suiteDivs = {};
this.logRunningSpecs = false;
};
jasmine.TrivialReporter.prototype.createDom = function(type, attrs, childrenVarArgs) {
var el = document.createElement(type);
for (var i = 2; i < arguments.length; i++) {
var child = arguments[i];
if (typeof child === 'string') {
el.appendChild(document.createTextNode(child));
} else {
if (child) { el.appendChild(child); }
}
}
for (var attr in attrs) {
if (attr == "className") {
el[attr] = attrs[attr];
} else {
el.setAttribute(attr, attrs[attr]);
}
}
return el;
};
jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) {
var showPassed, showSkipped;
this.outerDiv = this.createDom('div', { id: 'TrivialReporter', className: 'jasmine_reporter' },
this.createDom('div', { className: 'banner' },
this.createDom('div', { className: 'logo' },
this.createDom('span', { className: 'title' }, "Jasmine"),
this.createDom('span', { className: 'version' }, runner.env.versionString())),
this.createDom('div', { className: 'options' },
"Show ",
showPassed = this.createDom('input', { id: "__jasmine_TrivialReporter_showPassed__", type: 'checkbox' }),
this.createDom('label', { "for": "__jasmine_TrivialReporter_showPassed__" }, " passed "),
showSkipped = this.createDom('input', { id: "__jasmine_TrivialReporter_showSkipped__", type: 'checkbox' }),
this.createDom('label', { "for": "__jasmine_TrivialReporter_showSkipped__" }, " skipped")
)
),
this.runnerDiv = this.createDom('div', { className: 'runner running' },
this.createDom('a', { className: 'run_spec', href: '?' }, "run all"),
this.runnerMessageSpan = this.createDom('span', {}, "Running..."),
this.finishedAtSpan = this.createDom('span', { className: 'finished-at' }, ""))
);
this.document.body.appendChild(this.outerDiv);
var suites = runner.suites();
for (var i = 0; i < suites.length; i++) {
var suite = suites[i];
var suiteDiv = this.createDom('div', { className: 'suite' },
this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"),
this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description));
this.suiteDivs[suite.id] = suiteDiv;
var parentDiv = this.outerDiv;
if (suite.parentSuite) {
parentDiv = this.suiteDivs[suite.parentSuite.id];
}
parentDiv.appendChild(suiteDiv);
}
this.startedAt = new Date();
var self = this;
showPassed.onclick = function(evt) {
if (showPassed.checked) {
self.outerDiv.className += ' show-passed';
} else {
self.outerDiv.className = self.outerDiv.className.replace(/ show-passed/, '');
}
};
showSkipped.onclick = function(evt) {
if (showSkipped.checked) {
self.outerDiv.className += ' show-skipped';
} else {
self.outerDiv.className = self.outerDiv.className.replace(/ show-skipped/, '');
}
};
};
jasmine.TrivialReporter.prototype.reportRunnerResults = function(runner) {
var results = runner.results();
var className = (results.failedCount > 0) ? "runner failed" : "runner passed";
this.runnerDiv.setAttribute("class", className);
//do it twice for IE
this.runnerDiv.setAttribute("className", className);
var specs = runner.specs();
var specCount = 0;
for (var i = 0; i < specs.length; i++) {
if (this.specFilter(specs[i])) {
specCount++;
}
}
var message = "" + specCount + " spec" + (specCount == 1 ? "" : "s" ) + ", " + results.failedCount + " failure" + ((results.failedCount == 1) ? "" : "s");
message += " in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + "s";
this.runnerMessageSpan.replaceChild(this.createDom('a', { className: 'description', href: '?'}, message), this.runnerMessageSpan.firstChild);
this.finishedAtSpan.appendChild(document.createTextNode("Finished at " + new Date().toString()));
};
jasmine.TrivialReporter.prototype.reportSuiteResults = function(suite) {
var results = suite.results();
var status = results.passed() ? 'passed' : 'failed';
if (results.totalCount === 0) { // todo: change this to check results.skipped
status = 'skipped';
}
this.suiteDivs[suite.id].className += " " + status;
};
jasmine.TrivialReporter.prototype.reportSpecStarting = function(spec) {
if (this.logRunningSpecs) {
this.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
}
};
jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) {
var results = spec.results();
var status = results.passed() ? 'passed' : 'failed';
if (results.skipped) {
status = 'skipped';
}
var specDiv = this.createDom('div', { className: 'spec ' + status },
this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(spec.getFullName()) }, "run"),
this.createDom('a', {
className: 'description',
href: '?spec=' + encodeURIComponent(spec.getFullName()),
title: spec.getFullName()
}, spec.description));
var resultItems = results.getItems();
var messagesDiv = this.createDom('div', { className: 'messages' });
for (var i = 0; i < resultItems.length; i++) {
var result = resultItems[i];
if (result.type == 'log') {
messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString()));
} else if (result.type == 'expect' && result.passed && !result.passed()) {
messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message));
if (result.trace.stack) {
messagesDiv.appendChild(this.createDom('div', {className: 'stackTrace'}, result.trace.stack));
}
}
}
if (messagesDiv.childNodes.length > 0) {
specDiv.appendChild(messagesDiv);
}
this.suiteDivs[spec.suite.id].appendChild(specDiv);
};
jasmine.TrivialReporter.prototype.log = function() {
var console = jasmine.getGlobal().console;
if (console && console.log) {
if (console.log.apply) {
console.log.apply(console, arguments);
} else {
console.log(arguments); // ie fix: console.log.apply doesn't exist on ie
}
}
};
jasmine.TrivialReporter.prototype.getLocation = function() {
return this.document.location;
};
jasmine.TrivialReporter.prototype.specFilter = function(spec) {
var paramMap = {};
var params = this.getLocation().search.substring(1).split('&');
for (var i = 0; i < params.length; i++) {
var p = params[i].split('=');
paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
}
if (!paramMap.spec) {
return true;
}
return spec.getFullName().indexOf(paramMap.spec) === 0;
};
+75
View File
@@ -0,0 +1,75 @@
<!DOCTYPE html>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<html>
<head>
<title>Cordova: API Specs</title>
<meta name="viewport" content="width=device-width, height=device-height, user-scalable=yes, initial-scale=1.0;" />
<!-- Load jasmine -->
<link href="jasmine.css" rel="stylesheet"/>
<script type="text/javascript" src="jasmine.js"></script>
<script type="text/javascript" src="html/HtmlReporterHelpers.js"></script>
<script type="text/javascript" src="html/HtmlReporter.js"></script>
<script type="text/javascript" src="html/ReporterView.js"></script>
<script type="text/javascript" src="html/SpecView.js"></script>
<script type="text/javascript" src="html/SuiteView.js"></script>
<script type="text/javascript" src="html/TrivialReporter.js"></script>
<script type="text/javascript" src="jasmine-jsreporter.js"></script>
<!-- Source -->
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="barcodescanner.js"></script>
<!-- Load Test Runner -->
<script type="text/javascript" src="test-runner.js"></script>
<!-- Tests -->
<script type="text/javascript" src="barcodescanner.tests.js"></script>
<script type="text/javascript">
document.addEventListener('deviceready', function () {
// Once root is set up, fire off tests
var jasmineEnv = jasmine.getEnv();
jasmineEnv.updateInterval = 1000;
var htmlReporter = new jasmine.HtmlReporter();
jasmineEnv.addReporter(htmlReporter);
jasmineEnv.specFilter = function(spec) {
return htmlReporter.specFilter(spec);
};
jasmineEnv.execute();
}, false);
</script>
</head>
<body>
<a href="javascript:" class="backBtn" onclick="backHome();">Back</a>
</body>
</html>
+81
View File
@@ -0,0 +1,81 @@
body { background-color: #eeeeee; padding: 0; margin: 5px; overflow-y: scroll; }
#HTMLReporter { font-size: 11px; font-family: Monaco, "Lucida Console", monospace; line-height: 14px; color: #333333; }
#HTMLReporter a { text-decoration: none; }
#HTMLReporter a:hover { text-decoration: underline; }
#HTMLReporter p, #HTMLReporter h1, #HTMLReporter h2, #HTMLReporter h3, #HTMLReporter h4, #HTMLReporter h5, #HTMLReporter h6 { margin: 0; line-height: 14px; }
#HTMLReporter .banner, #HTMLReporter .symbolSummary, #HTMLReporter .summary, #HTMLReporter .resultMessage, #HTMLReporter .specDetail .description, #HTMLReporter .alert .bar, #HTMLReporter .stackTrace { padding-left: 9px; padding-right: 9px; }
#HTMLReporter #jasmine_content { position: fixed; right: 100%; }
#HTMLReporter .version { color: #aaaaaa; }
#HTMLReporter .banner { margin-top: 14px; }
#HTMLReporter .duration { color: #aaaaaa; float: right; }
#HTMLReporter .symbolSummary { overflow: hidden; *zoom: 1; margin: 14px 0; }
#HTMLReporter .symbolSummary li { display: block; float: left; height: 7px; width: 14px; margin-bottom: 7px; font-size: 16px; }
#HTMLReporter .symbolSummary li.passed { font-size: 14px; }
#HTMLReporter .symbolSummary li.passed:before { color: #5e7d00; content: "\02022"; }
#HTMLReporter .symbolSummary li.failed { line-height: 9px; }
#HTMLReporter .symbolSummary li.failed:before { color: #b03911; content: "x"; font-weight: bold; margin-left: -1px; }
#HTMLReporter .symbolSummary li.skipped { font-size: 14px; }
#HTMLReporter .symbolSummary li.skipped:before { color: #bababa; content: "\02022"; }
#HTMLReporter .symbolSummary li.pending { line-height: 11px; }
#HTMLReporter .symbolSummary li.pending:before { color: #aaaaaa; content: "-"; }
#HTMLReporter .bar { line-height: 28px; font-size: 14px; display: block; color: #eee; }
#HTMLReporter .runningAlert { background-color: #666666; }
#HTMLReporter .skippedAlert { background-color: #aaaaaa; }
#HTMLReporter .skippedAlert:first-child { background-color: #333333; }
#HTMLReporter .skippedAlert:hover { text-decoration: none; color: white; text-decoration: underline; }
#HTMLReporter .passingAlert { background-color: #a6b779; }
#HTMLReporter .passingAlert:first-child { background-color: #5e7d00; }
#HTMLReporter .failingAlert { background-color: #cf867e; }
#HTMLReporter .failingAlert:first-child { background-color: #b03911; }
#HTMLReporter .results { margin-top: 14px; }
#HTMLReporter #details { display: none; }
#HTMLReporter .resultsMenu, #HTMLReporter .resultsMenu a { background-color: #fff; color: #333333; }
#HTMLReporter.showDetails .summaryMenuItem { font-weight: normal; text-decoration: inherit; }
#HTMLReporter.showDetails .summaryMenuItem:hover { text-decoration: underline; }
#HTMLReporter.showDetails .detailsMenuItem { font-weight: bold; text-decoration: underline; }
#HTMLReporter.showDetails .summary { display: none; }
#HTMLReporter.showDetails #details { display: block; }
#HTMLReporter .summaryMenuItem { font-weight: bold; text-decoration: underline; }
#HTMLReporter .summary { margin-top: 14px; }
#HTMLReporter .summary .suite .suite, #HTMLReporter .summary .specSummary { margin-left: 14px; }
#HTMLReporter .summary .specSummary.passed a { color: #5e7d00; }
#HTMLReporter .summary .specSummary.failed a { color: #b03911; }
#HTMLReporter .description + .suite { margin-top: 0; }
#HTMLReporter .suite { margin-top: 14px; }
#HTMLReporter .suite a { color: #333333; }
#HTMLReporter #details .specDetail { margin-bottom: 28px; }
#HTMLReporter #details .specDetail .description { display: block; color: white; background-color: #b03911; }
#HTMLReporter .resultMessage { padding-top: 14px; color: #333333; }
#HTMLReporter .resultMessage span.result { display: block; }
#HTMLReporter .stackTrace { margin: 5px 0 0 0; max-height: 224px; overflow: auto; line-height: 18px; color: #666666; border: 1px solid #ddd; background: white; white-space: pre; }
#TrivialReporter { padding: 8px 13px; position: absolute; top: 0; bottom: 0; left: 0; right: 0; overflow-y: scroll; background-color: white; font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif; /*.resultMessage {*/ /*white-space: pre;*/ /*}*/ }
#TrivialReporter a:visited, #TrivialReporter a { color: #303; }
#TrivialReporter a:hover, #TrivialReporter a:active { color: blue; }
#TrivialReporter .run_spec { float: right; padding-right: 5px; font-size: .8em; text-decoration: none; }
#TrivialReporter .banner { color: #303; background-color: #fef; padding: 5px; }
#TrivialReporter .logo { float: left; font-size: 1.1em; padding-left: 5px; }
#TrivialReporter .logo .version { font-size: .6em; padding-left: 1em; }
#TrivialReporter .runner.running { background-color: yellow; }
#TrivialReporter .options { text-align: right; font-size: .8em; }
#TrivialReporter .suite { border: 1px outset gray; margin: 5px 0; padding-left: 1em; }
#TrivialReporter .suite .suite { margin: 5px; }
#TrivialReporter .suite.passed { background-color: #dfd; }
#TrivialReporter .suite.failed { background-color: #fdd; }
#TrivialReporter .spec { margin: 5px; padding-left: 1em; clear: both; }
#TrivialReporter .spec.failed, #TrivialReporter .spec.passed, #TrivialReporter .spec.skipped { padding-bottom: 5px; border: 1px solid gray; }
#TrivialReporter .spec.failed { background-color: #fbb; border-color: red; }
#TrivialReporter .spec.passed { background-color: #bfb; border-color: green; }
#TrivialReporter .spec.skipped { background-color: #bbb; }
#TrivialReporter .messages { border-left: 1px dashed gray; padding-left: 1em; padding-right: 1em; }
#TrivialReporter .passed { background-color: #cfc; display: none; }
#TrivialReporter .failed { background-color: #fbb; }
#TrivialReporter .skipped { color: #777; background-color: #eee; display: none; }
#TrivialReporter .resultMessage span.result { display: block; line-height: 2em; color: black; }
#TrivialReporter .resultMessage .mismatch { color: black; }
#TrivialReporter .stackTrace { white-space: pre; font-size: .8em; margin-left: 10px; max-height: 5em; overflow: auto; border: 1px inset red; padding: 1em; background: #eef; }
#TrivialReporter .finished-at { padding-left: 1em; font-size: .6em; }
#TrivialReporter.show-passed .passed, #TrivialReporter.show-skipped .skipped { display: block; }
#TrivialReporter #jasmine_content { position: fixed; right: 100%; }
#TrivialReporter .runner { border: 1px solid gray; display: block; margin: 5px 0; padding: 2px 0 2px 10px; }
+2530
View File
File diff suppressed because it is too large Load Diff
+62
View File
@@ -0,0 +1,62 @@
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
if (window.sessionStorage != null) {
window.sessionStorage.clear();
}
// Timeout is 2 seconds to allow physical devices enough
// time to query the response. This is important for some
// Android devices.
var Tests = function() {};
Tests.TEST_TIMEOUT = 7500;
// Creates a spy that will fail if called.
function createDoNotCallSpy(name, opt_extraMessage) {
return jasmine.createSpy().andCallFake(function() {
var errorMessage = name + ' should not have been called.';
if (arguments.length) {
errorMessage += ' Got args: ' + JSON.stringify(arguments);
}
if (opt_extraMessage) {
errorMessage += '\n' + opt_extraMessage;
}
expect(false).toBe(true, errorMessage);
});
}
// Waits for any of the given spys to be called.
// Last param may be a custom timeout duration.
function waitsForAny() {
var spys = [].slice.call(arguments);
var timeout = Tests.TEST_TIMEOUT;
if (typeof spys[spys.length - 1] == 'number') {
timeout = spys.pop();
}
waitsFor(function() {
for (var i = 0; i < spys.length; ++i) {
if (spys[i].wasCalled) {
return true;
}
}
return false;
}, "Expecting callbacks to be called.", timeout);
}
+1
View File
@@ -0,0 +1 @@
/libs
+56 -37
View File
@@ -14,36 +14,53 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- versionCode is a monotonically increasing integer. I'm starting it at 6 because v2.3 is the 6th
version to be published. The next versionCode will be 7, regardless of whether the user-visible
versionName is 2.31, 2.4, or 3.0. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.zxing.client.android"
android:versionName="3.61 beta 1"
android:versionCode="71"
android:versionName="4.3.1"
android:versionCode="87"
android:installLocation="auto">
<!-- We require Cupcake (Android 1.5) or later, but are really targeting Donut. -->
<uses-sdk android:minSdkVersion="3"
android:targetSdkVersion="4"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10"/>
<!-- Don't require camera, as this requires a rear camera. This allows it to work on the Nexus 7 -->
<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"/>
<uses-feature android:name="android.hardware.screen.landscape"/>
<uses-feature android:name="android.hardware.wifi" android:required="false"/>
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
<!-- Donut-specific flags which allow us to run on any dpi screens. -->
<supports-screens android:xlargeScreens="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>
<!-- For Donut and above we must specify that we use the camera, but intentionally omit the
autofocus feature in order for the app to appear in Market for non-AF devices. While it's true
that 1D barcodes will not be scannable, QR Codes will work. Ideally we'd show users a message
to this effect on first launch. -->
<uses-feature android:name="android.hardware.camera"/>
<application android:icon="@drawable/launcher_icon"
android:label="@string/app_name">
<activity android:name=".CaptureActivity"
android:screenOrientation="landscape"
android:clearTaskOnLaunch="true"
android:stateNotNeeded="true"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="com.google.zxing.client.android.SCAN"/>
<category android:name="android.intent.category.DEFAULT"/>
@@ -69,11 +86,21 @@ versionName is 2.31, 2.4, or 3.0. -->
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="http" android:host="www.google.co.uk" android:path="/m/products/scan"/>
</intent-filter>
<!-- Support zxing://scan/?... like iPhone app -->
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="zxing" android:host="scan" android:path="/"/>
</intent-filter>
</activity>
<activity android:name=".PreferencesActivity"
android:label="@string/preferences_name">
android:label="@string/preferences_name"
android:stateNotNeeded="true">
</activity>
<activity android:name=".encode.EncodeActivity" android:label="@string/share_name">
<activity android:name=".encode.EncodeActivity"
android:label="@string/share_name"
android:stateNotNeeded="true">
<intent-filter>
<action android:name="com.google.zxing.client.android.ENCODE"/>
<category android:name="android.intent.category.DEFAULT"/>
@@ -93,6 +120,7 @@ versionName is 2.31, 2.4, or 3.0. -->
</activity>
<activity android:name=".book.SearchBookContentsActivity"
android:label="@string/sbc_name"
android:stateNotNeeded="true"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
@@ -100,13 +128,9 @@ versionName is 2.31, 2.4, or 3.0. -->
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name=".wifi.WifiActivity"
android:label="@string/wa_name"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden">
</activity>
<activity android:name=".share.ShareActivity"
android:label="@string/share_name"
android:stateNotNeeded="true"
android:screenOrientation="user"
android:theme="@android:style/Theme.Light">
<intent-filter>
@@ -114,8 +138,17 @@ versionName is 2.31, 2.4, or 3.0. -->
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name=".history.HistoryActivity"
android:label="@string/history_title"
android:stateNotNeeded="true">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name=".share.BookmarkPickerActivity"
android:label="@string/bookmark_picker_name">
android:label="@string/bookmark_picker_name"
android:stateNotNeeded="true">
<intent-filter>
<action android:name="android.intent.action.PICK"/>
<category android:name="android.intent.category.DEFAULT"/>
@@ -123,6 +156,7 @@ versionName is 2.31, 2.4, or 3.0. -->
</activity>
<activity android:name=".share.AppPickerActivity"
android:label="@string/app_picker_name"
android:stateNotNeeded="true"
android:configChanges="orientation">
<intent-filter>
<action android:name="android.intent.action.PICK"/>
@@ -137,20 +171,5 @@ versionName is 2.31, 2.4, or 3.0. -->
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- Wifi related -->
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
</manifest>
+21
View File
@@ -0,0 +1,21 @@
# This file is used to override default values used by the Ant build system.
#
# This file must be checked in Version Control Systems, as it is
# integral to the build system of your project.
# This file is only used by the Ant script.
# You can use this to override default values such as
# 'source.dir' for the location of your java source folder and
# 'out.dir' for the location of your output folder.
# You can also use it define how the release builds are signed by declaring
# the following properties:
# 'key.store' for the location of your keystore and
# 'key.alias' for the name of the key to use.
# The password will be asked during the build when you use the 'release' target.
application-package=com.google.zxing.client.android
external-libs-folder=libs
key.store=../../release.keystore
key.alias=release
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>Über 1D-Barcodes (Strichcodes)</title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p>Die altbekannten Strichcodes, wie solche auf Produktverpackungen, werden auch eindimensionale Barcodes genannt. Es gibt einige verbreitete Arten, wie den UPC (Universal Product Code) und den EAN (European Article Number). Die meisten schauen so aus:</p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p>Diese Strichcodes enthalten eine einmalige Nummer, welche ein Produkt, wie ein Buch oder eine CD, beschreiben. Man kann nach dieser Nummer im Internet suchen, um Preise oder Beurteilungen zu finden.</p>
<p>Wenn man den Code eines Buches einscannt, kann man den Inhalt des Buches nach Wörtern oder Sätzen durchsuchen und alle Seiten finden, in denen dieses Wort vorkam:</p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
</body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>Über 2D-Barcodes</title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p>Der <strong>Barcode Scanner</strong> kann auch zweidimensionale Barcodes, wie den QR-Code und den DataMatrix-Code einlesen. Die Barcodes in diesem Beispiel enthalten einen Hyperlink auf die Projekt-Homepage von ZXing:</p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
</p>
<p>Ein QR-Code kann auch eine Visitenkarte mit Kontaktinformationen wie Telefonnummern und E-Mail-Adressen enthalten. Wird ein solcher Code eingescannt, dann wird eine Auswahl an Aktionen angezeigt:</p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p>Neben URLs und Kontaktdaten können QR-Codes auch folgendes enthalten:</p>
<ul>
<li>Kalendereinträge, die man dem Kalender hinzufügen kann</li>
<li>Telefonnummern, die man anrufen oder abspeichern kann</li>
<li>SMS-Nachrichten, die man verschicken kann</li>
<li>E-Mail-Adressen, denen man eine Nachricht schreiben kann</li>
<li>Geographische Koordinaten, die zu der man die Karte öffnen kann</li>
<li>Einfachen Text, den man lesen oder in die Zwischenablage kopieren kann</li>
</ul>
</body>
</html>
@@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>Barcode Scanner-Hilfe</title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner 4.3.1</strong></p>
<p>Dies ist die offizielle Android App des Open-Source-Projekts ZXing:<br/>
<a href="http://code.google.com/p/zxing">http://code.google.com/p/zxing</a></p>
<p>Der <strong>Barcode Scanner</strong> verwendet die Kamera ihres Handys, um Barcodes zu lesen und Produktinformationen wie Preise und Bewertungen zu suchen.</p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p>Er liest auch 2D-Barcodes wie den QR-Code und DataMatrix. Diese Barcodes können z.B. Links zu Webseiten enthalten oder Kontaktinformationen wie Telefonnummern und E-Mail-Adressen und vieles mehr.</p>
<ul class="touchable">
<li><a href="whatsnew.html">Neues in dieser Version</a></li>
<li><a href="scanning.html">Tips fürs scannen</a></li>
<li><a href="about1d.html">Mehr über 1D-Barcodes</a></li>
<li><a href="about2d.html">Mehr über 2D-Barcodes</a></li>
<li><a href="sharing.html">So erstellen Sie QR-Codes</a></li>
</ul>
</body>
</html>
@@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>Tips fürs scannen</title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p>Der Scanner durchsucht kontinuierlich den rechteckigen Bereich auf dem Bildschirm. Dabei muss der Barcode vollständig im rechteckigen Sucher erscheinen:</p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p>Für 1D-Barcodes, auch Strichcodes genannt, welche sich auf allen Handelsprodukten befinden, benötigt man ein Handy mit Autofokus. Ohne diesen können nur QR-Codes und DataMatrix-Codes eingescannt werden.</p>
<p>Wenn ein Barcode eingelesen wurde, piepst das Handy und es wird das Ergebnis des Scans angezeigt, sowie eine Beschreibung des Barcode-Inhalts, und verschiedene Möglichkeiten wie weiter verfahren werden soll.</p>
<p>Falls das Einscannen nicht richtig funktioniert, versuchen Sie das Handy ruhiger zu halten. Wenn das Bild unscharf ist, vergrößern oder verkleinern Sie den Abstand zum Barcode.</p>
<ul class="touchable">
<li><a href="about1d.html"> Über 1D-Barcodes </a></li>
<li><a href="about2d.html"> Über 2D-Barcodes </a></li>
</ul>
</body>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>So erstellen Sie einen QR-Code</title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p>Der <strong>Barcode Scanner</strong> kann nicht nur QR-Codes einlesen, sondern auch selbst erzeugen und auf dem Bildschirm anzeigen. Diesen QR-Code können Sie dann einem Freund zeigen, der den Code mit seinen Handy einscannen kann.</p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p>Um diese Funktion zu nutzen, einfach auf dem Hauptbildschirm auf die Menü-Taste drücken, und auf <em>Senden</em> tippen. Dann wählen, ob Sie einen Kontakt, ein Lesezeichen, eine Anwendung oder den Inhalt der Zwischenablage senden wollen und der QR-Code wird automatisch generiert. Wenn Sie fertig sind, drücken Sie die Zurücktaste.</p>
<p>Um QR-Codes auf Ihrem Computer zu erzeugen, testen Sie den ZXing QR Code Generator, er basiert auf dem selben Quelltext wie dieses Programm: <a href="http://zxing.appspot.com/generator/">http://zxing.appspot.com/generator/</a></p>
</body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>Neues in dieser Version von Barcode Scanner</title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p>Neu in der Version 4.3.1:</p>
<ul>
<li>Belichtungssteuerung deaktivierbar, wenn diese auf Ihrem Gerät Probleme verursacht</li>
<li>Einige weitere kleine Fehler behoben</li>
</ul>
</body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>About 1D barcodes</title>
<link rel="stylesheet" href="../style.css" type="text/css"/>
</head>
<body>
<p>Traditional barcodes, such as those printed on product packaging, are also known as one dimensional barcodes. There are several types commonly used, including UPC and EAN. Most look similar to this:</p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p>These 1D barcodes contain a unique code which typically describes a product, like a CD or a book. You can look this code up on the internet to find prices, reviews, and more.</p>
<p>If you scan a book, you can also search the contents of the book for a word or phrase, and find all the pages where it appears:</p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
</body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>About 2D barcodes</title>
<link rel="stylesheet" href="../style.css" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner</strong> also understands how to read two dimensional barcodes, like QR Codes and Data Matrix codes. For example, the codes below contain a hyperlink to the ZXing Project home page:</p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
</p>
<p>You can also represent contact information in a QR Code, and put it on a business card or web site. When you scan it, the results screen provides a choice of actions:</p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p>Besides URLs and contact info, QR Codes can also contain:</p>
<ul>
<li>Calendar events, which you can add to your Calendar</li>
<li>Phone numbers, which you can dial</li>
<li>SMS numbers, which you can text message</li>
<li>Email addresses, which you can email</li>
<li>Geographic coordinates, which you can open in Maps</li>
<li>Plain text, which you can read, then share with a friend</li>
</ul>
</body>
</html>
@@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>Barcode Scanner Help</title>
<link rel="stylesheet" href="../style.css" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner 4.3.1</strong></p>
<p>The official Android app of the open source ZXing project:<br/>
<a href="http://code.google.com/p/zxing">http://code.google.com/p/zxing</a></p>
<p>Barcode Scanner uses the camera on your phone to read barcodes and look up product information such as prices and reviews.</p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p>It also reads 2D barcodes such as QR Codes and Data Matrix. These can contain links to web sites, contact information such as phone numbers and email addresses, and more.</p>
<ul class="touchable">
<li><a href="whatsnew.html">What's new in this version</a></li>
<li><a href="scanning.html">How to scan</a></li>
<li><a href="about1d.html">About 1D barcodes</a></li>
<li><a href="about2d.html">About 2D barcodes</a></li>
<li><a href="sharing.html">How to create QR Codes</a></li>
</ul>
</body>
</html>
@@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>How to scan</title>
<link rel="stylesheet" href="../style.css" type="text/css"/>
</head>
<body>
<p>Barcode Scanner continuously scans a square region shown on your screen -- just line up the phone so the barcode is completely inside the viewfinder rectangle:</p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p>1D barcodes like those found on products require a phone with autofocus. Without it, only QR Codes and Data Matrix codes will be scannable.</p>
<p>When a barcode is read, a beep sound will play and you'll see the results of the scan, a description of what the barcode contains, and options to take action on the contents.</p>
<p>If you're having trouble scanning, make sure to hold the phone steady. If the camera is unable to focus, try moving the phone further or closer from the barcode.</p>
<ul class="touchable">
<li><a href="about1d.html">About 1D barcodes</a></li>
<li><a href="about2d.html">About 2D barcodes</a></li>
</ul>
</body>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>How to create QR Codes</title>
<link rel="stylesheet" href="../style.css" type="text/css"/>
</head>
<body>
<p>In addition to scanning 2D barcodes, Barcode Scanner can also generate a QR Code and display it on your screen. Then you can show it to a friend, and let them scan the barcode with their phone:</p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p>To use this feature, press the Menu button from the main scanning screen, and tap Share. Then choose whether you want to share a contact, a bookmark, an application, or the contents of the clipboard. A QR Code will be generated automatically. When you're done, press Back or Home.</p>
<p>To generate QR Codes from your computer, try the ZXing QR Code Generator: <a href="http://zxing.appspot.com/generator/">http://zxing.appspot.com/generator/</a></p>
</body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>What's new in Barcode Scanner</title>
<link rel="stylesheet" href="../style.css" type="text/css"/>
</head>
<body>
<p>New in version 4.3.1:</p>
<ul>
<li>Disabled exposure control as it caused problems on several buggy devices</li>
<li>Other small bug fixes</li>
</ul>
</body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Acerca de los códigos de barras 1D </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Códigos de barras tradicionales, tales como las impresas en el embalaje del producto, se conocen también como uno códigos de barras bidimensionales. Existen varios tipos de uso común, incluyendo UPC y EAN. La mayoría de aspecto similar a este: </p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p> Estos códigos de barras 1D contiene un código único que generalmente describe un producto, como un CD o un libro. Usted puede ver este código en el Internet para encontrar precios, comentarios y más. </p>
<p> Si digitaliza un libro, también puede buscar en el contenido del libro para una palabra o frase, y encontrar todas las páginas en las que aparece: </p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
<p>Traducido por Google Translate.</p></body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Acerca de los códigos de barras 2D </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong> Barcode Scanner </strong> También entiende cómo leer dos códigos de barras bidimensionales, como los códigos QR y códigos Data Matrix. Por ejemplo, los códigos que siguen contienen un hipervínculo a la página principal de Project ZXing: </p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
</p>
<p> También puede representar la información de contacto en un código QR, y lo puso en una tarjeta de visita o en el sitio web. Cuando se escanea, la pantalla de resultados se ofrecen una serie de acciones: </p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p> Además de las direcciones URL y la información de contacto, los códigos QR también puede contener: </p>
<ul>
<li> Los eventos del calendario, que se pueden añadir a su calendario </li>
<li> Los números de teléfono, que puede marcar </li>
<li> SMS números, que puede mensaje de texto </li>
<li> Direcciones de correo electrónico, que se puede enviar por correo electrónico </li>
<li> Coordenadas Geográficas, que se puede abrir en Mapas </li>
<li> Texto sin formato, que se puede leer, compartir con un amigo </li>
</ul>
<p>Traducido por Google Translate.</p></body>
</html>
@@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Barcode Scanner Ayuda </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner 4.3.1</strong></p>
<p> La aplicación oficial de Android del proyecto de código abierto ZXing:<br/>
<a href="http://code.google.com/p/zxing"> http://code.google.com/p/zxing </a></p>
<p> Barcode Scanner utiliza la cámara de su móvil para leer códigos de barras y buscar información sobre los productos como los precios y las revisiones. </p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p> También lee los códigos de barras 2D, como los Códigos QR y Data Matrix. Estos pueden contener enlaces a otros sitios web, información de contacto, como números de teléfono y direcciones de correo electrónico y mucho más. </p>
<ul class="touchable">
<li><a href="whatsnew.html"> ¿Qué hay de nuevo en esta versión? </a></li>
<li><a href="scanning.html"> Cómo analizar </a></li>
<li><a href="about1d.html"> Acerca de los códigos de barras 1D </a></li>
<li><a href="about2d.html"> Acerca de los códigos de barras 2D </a></li>
<li><a href="sharing.html"> Cómo crear códigos QR </a></li>
</ul>
<p>Traducido por Google Translate.</p></body>
</html>
@@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Cómo analizar </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Barcode Scanner escanea continuamente una región cuadrada que aparece en su pantalla - Sólo basta definir el teléfono de modo que el código de barras es completamente dentro del rectángulo del visor: </p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p> Códigos de barras 1D, como las que se encuentran en los productos requieren un teléfono con enfoque automático. Sin él, sólo los códigos QR y códigos Data Matrix será susceptible de ser analizada. </p>
<p> Cuando un código de barras es leído, un sonido se reproducirá y podrás ver los resultados del análisis, una descripción de lo que contiene el código de barras, y las opciones para tomar acción sobre los contenidos. </p>
<p> Si usted está teniendo problemas de escaneo, asegúrese de sujetar el teléfono fijo. Si la cámara no puede enfocar, mueva el teléfono más lejos o más cerca del código de barras. </p>
<ul class="touchable">
<li><a href="about1d.html"> Acerca de los códigos de barras 1D </a></li>
<li><a href="about2d.html"> Acerca de los códigos de barras 2D </a></li>
</ul>
<p>Traducido por Google Translate.</p></body>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Cómo crear códigos QR </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Además de escanear códigos de barras 2D, escáner de código de barras también puede generar un código QR y lo mostrará en la pantalla. A continuación, puede mostrar a un amigo, y dejar que escanear el código de barras con su teléfono: </p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p> Para utilizar esta función, presione el botón Menú en la pantalla de exploración principal y toque Compartir. A continuación, seleccione si desea compartir un contacto, un marcador, una aplicación o el contenido del portapapeles. Un código QR se generará automáticamente. Cuando haya terminado, pulse Atrás o Inicio. </p>
<p> Para generar códigos QR desde su computadora, pruebe el generador ZXing Código QR: <a href="http://zxing.appspot.com/generator/"> http://zxing.appspot.com/generator/ </a></p>
<p>Traducido por Google Translate.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> ¿Qué hay de nuevo en Barcode Scanner </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Nuevo en la versión 4.3.1: </p>
<ul>
<li> Desactivado el control de exposición ya que causó problemas en los dispositivos con errores varios </li>
<li> Otras pequeñas correcciones de errores </li>
</ul>
<p>Traducido por Google Translate.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> À propos de codes à barres 1D </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Codes à barres traditionnels, tels que ceux imprimés sur l'emballage du produit, sont également connus comme une dimension codes à barres. Il existe plusieurs types couramment utilisés, y compris l'UPC et EAN. La plupart ressembler à ceci: </p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p> Ces codes à barres 1D contient un code unique qui décrit typiquement un produit, comme un CD ou un livre. Vous pouvez regarder ce code sur internet pour trouver les prix, critiques et autres. </p>
<p> Si vous numérisez un livre, vous pouvez également rechercher le contenu du livre pour un mot ou une phrase, et de trouver toutes les pages où il apparaît: </p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
<p>Traduit par Google Translate.</p></body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> À propos de codes-barres 2D </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong> Barcode Scanner </strong> comprend également comment lire deux dimensions, comme les codes-barres QR Codes et les codes Data Matrix. Par exemple, les codes ci-dessous contiennent un lien hypertexte vers la page d'accueil du projet ZXing: </p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
</p>
<p> Vous pouvez également représenter des informations de contact dans un QR Code, et le mettre sur une carte de visite ou un site Web. Lorsque vous scannez, l'écran de résultats fournit un choix d'actions: </p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p> Outre les URL et les informations de contact, les codes QR peuvent aussi contenir: </p>
<ul>
<li> Calendrier des événements que vous pouvez ajouter à votre agenda </li>
<li> Les numéros de téléphone que vous pouvez composer </li>
<li> Numéros SMS, que vous pouvez Texte du message </li>
<li> Adresses e-mail, que vous pouvez envoyer un courriel </li>
<li> Coordonnées géographiques, que vous pouvez ouvrir dans Google Maps </li>
<li> Texte, que vous pouvez lire, puis partager avec un ami </li>
</ul>
<p>Traduit par Google Translate.</p></body>
</html>
@@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Aide Barcode Scanner </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner 4.3.1</strong></p>
<p> L'application officielle Android du projet ZXing open source:<br/>
<a href="http://code.google.com/p/zxing"> http://code.google.com/p/zxing </a></p>
<p> Barcode Scanner utilise la caméra de votre téléphone pour lire des codes barres et de rechercher des informations sur des produits tels que les prix et les critiques. </p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p> Il lit également les codes à barres 2D tels que les codes QR et Data Matrix. Ceux-ci peuvent contenir des liens vers des sites Web, communiquer avec des informations telles que les numéros de téléphone et adresses e-mail, et plus encore. </p>
<ul class="touchable">
<li><a href="whatsnew.html"> Quoi de neuf dans cette version </a></li>
<li><a href="scanning.html"> Comment numériser </a></li>
<li><a href="about1d.html"> À propos de codes à barres 1D </a></li>
<li><a href="about2d.html"> À propos de codes-barres 2D </a></li>
<li><a href="sharing.html"> Comment créer des codes QR </a></li>
</ul>
<p>Traduit par Google Translate.</p></body>
</html>
@@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Comment numériser </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Barcode Scanner scanne en permanence une zone carrée affichée sur votre écran - ligne juste le téléphone de sorte que le code à barres est complètement à l'intérieur du rectangle du viseur: </p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p> Codes à barres 1D comme ceux qu'on trouve sur les produits nécessitent un téléphone avec autofocus. Sans elle, seuls les codes QR et les codes Data Matrix sera analysable. </p>
<p> Quand un code-barres est lu, un bip sonore se jouer et vous verrez les résultats de l'analyse, une description de ce que le code à barres contient, et les options à prendre des mesures sur le contenu. </p>
<p> Si vous rencontrez des problèmes de numérisation, assurez-vous de tenir le téléphone fixe. Si l'appareil photo est incapable de se concentrer, essayez de déplacer le téléphone supplémentaire ou plus près du code à barres. </p>
<ul class="touchable">
<li><a href="about1d.html"> À propos de codes à barres 1D </a></li>
<li><a href="about2d.html"> À propos de codes-barres 2D </a></li>
</ul>
<p>Traduit par Google Translate.</p></body>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Comment créer des codes QR </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> En plus de la numérisation des codes à barres 2D, Barcode Scanner peut aussi générer un QR Code et l'afficher sur votre écran. Ensuite, vous pouvez le montrer à un ami, et laissez-les scanner le code-barres avec leur téléphone: </p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p> Pour utiliser cette fonction, appuyez sur la touche Menu depuis l'écran du balayage principal, puis appuyez sur Partager. Ensuite, choisissez si vous voulez partager un contact, un signet, une application ou le contenu du presse-papiers. Un Code QR est généré automatiquement. Lorsque vous avez terminé, appuyez sur Retour ou d'accueil. </p>
<p> Pour générer les codes QR à partir de votre ordinateur, essayez le générateur de code QR ZXing: <a href="http://zxing.appspot.com/generator/"> http://zxing.appspot.com/generator/ </a></p>
<p>Traduit par Google Translate.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Quoi de neuf dans Barcode Scanner </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Nouveau dans la version 4.3.1: </p>
<ul>
<li> Désactivé contrôle de l'exposition que cela causait des problèmes sur les appareils de buggy plusieurs </li>
<li> D'autres petites corrections de bugs </li>
</ul>
<p>Traduit par Google Translate.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> A proposito di codici a barre 1D </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Codici a barre tradizionali, come quelle stampate sulla confezione del prodotto, sono noti anche come uno codici a barre bidimensionali. Ci sono diversi tipi di uso comune, tra cui UPC ed EAN. La maggior parte simile al seguente: </p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p> Queste barre 1D contengono un codice unico che descrive tipicamente un prodotto, come un CD o un libro. È possibile cercare questo codice su internet per trovare i prezzi, recensioni e altro. </p>
<p> Se si esegue la scansione di un libro, è anche possibile cercare i contenuti del libro per una parola o una frase, e trovare tutte le pagine in cui appare: </p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
<p>Tradotto da Google Translate.</p></body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> A proposito di codici a barre 2D </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong> Barcode Scanner </strong> comprende anche come leggere due codici a barre bidimensionali, come i codici QR e codici Data Matrix. Per esempio, i seguenti codici contengono un collegamento ipertestuale alla pagina ZXing principale del progetto: </p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
</p>
<p> È anche possibile rappresentare le informazioni di contatto in un QR Code, e metterlo su un biglietto da visita o un sito web. Quando si esegue la scansione, la schermata dei risultati fornisce una serie di azioni: </p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p> Oltre URL e informazioni di contatto, i codici QR possono contenere anche: </p>
<ul>
<li> Eventi del Calendario, che è possibile aggiungere al vostro calendario </li>
<li> I numeri di telefono, che possono essere digitati </li>
<li> Numeri di SMS, che è possibile il testo del messaggio </li>
<li> Indirizzi e-mail, che possono essere inviati per email </li>
<li> Coordinate geografiche, che è possibile aprire in Mappe </li>
<li> Testo semplice, che si può leggere, quindi condividere con un amico </li>
</ul>
<p>Tradotto da Google Translate.</p></body>
</html>
@@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Barcode Scanner Aiuto </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner 4.3.1</strong></p>
<p> L'applicazione ufficiale di Android del progetto aperto ZXing fonte:<br/>
<a href="http://code.google.com/p/zxing"> http://code.google.com/p/zxing </a></p>
<p> Scanner di codici a barre utilizza la fotocamera del telefono per leggere codici a barre e ricercare informazioni sui prodotti, i prezzi e le recensioni. </p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p> Legge anche codici a barre 2D, come i codici QR e Data Matrix. Questi possono contenere link a siti web, informazioni di contatto, quali numeri di telefono e indirizzi e-mail e altro ancora. </p>
<ul class="touchable">
<li><a href="whatsnew.html"> Cosa c'è di nuovo in questa versione </a></li>
<li><a href="scanning.html"> Come eseguire la scansione </a></li>
<li><a href="about1d.html"> A proposito di codici a barre 1D </a></li>
<li><a href="about2d.html"> A proposito di codici a barre 2D </a></li>
<li><a href="sharing.html"> Come creare codici QR </a></li>
</ul>
<p>Tradotto da Google Translate.</p></body>
</html>
@@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Come eseguire la scansione </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Barcode Scanner analizza continuamente una regione quadrata mostrata sullo schermo - solo linea il telefono in modo che il codice a barre è completamente all'interno del rettangolo del mirino: </p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p> Codici a barre 1D, come quelle che si trovano sui prodotti richiede un telefono con autofocus. Senza di essa, solo i codici QR e codici Data Matrix sarà leggibile. </p>
<p> Quando un codice a barre viene letto, un bip si giocare e vedrete i risultati della scansione, una descrizione di ciò che il codice a barre contiene, e le opzioni per intervenire sui contenuti. </p>
<p> Se hai dei problemi di scansione, assicurarsi di tenere il telefono fermo. Se la fotocamera non riesce a mettere a fuoco, provare a spostare il telefono lontano o più vicino dal codice a barre. </p>
<ul class="touchable">
<li><a href="about1d.html"> A proposito di codici a barre 1D </a></li>
<li><a href="about2d.html"> A proposito di codici a barre 2D </a></li>
</ul>
<p>Tradotto da Google Translate.</p></body>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Come creare codici QR </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Oltre alla scansione di codici a barre 2D, Barcode Scanner può anche generare un codice QR e visualizzarla sullo schermo. Poi si può mostrare ad un amico, e far loro eseguire la scansione del codice a barre con il proprio telefono: </p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p> Per utilizzare questa funzione, premere il tasto Menu dalla schermata di scansione principale, e toccare Condividi. Quindi scegliere se si desidera condividere un contatto, un segnalibro, un'applicazione, o il contenuto degli appunti. Un codice a barre verrà generato automaticamente. Al termine, premere Indietro o Home. </p>
<p> Per generare i codici QR dal tuo computer, provare il generatore di ZXing QR Code: <a href="http://zxing.appspot.com/generator/"> http://zxing.appspot.com/generator/ </a></p>
<p>Tradotto da Google Translate.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Cosa c'è di nuovo nella Barcode Scanner </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Nuovo nella versione 4.3.1: </p>
<ul>
<li> Disabilitato il controllo dell'esposizione, ha causato problemi su dispositivi diversi buggy </li>
<li> Altre correzioni di bug piccoli </li>
</ul>
<p>Tradotto da Google Translate.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 1Dバーコードについて </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> そのような製品パッケージに印刷されるような伝統的なバーコードもまた、1次元バーコードとして知られています。 UPCとEANなど、一般的に使用されるいくつかの種類があります。ほとんどはこれに似ているように見えます: </p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p> これらの1Dバーコードは、通常、CDや本のように、製品を説明する固有のコードが含まれています。あなたは、価格やレビューなどを見つけるために、インターネット上でこのコードを調べることができます。 </p>
<p> あなたが本をスキャンする場合は、単語やフレーズの本の内容を検索して、それが表示されるすべてのページを見つけることができます: </p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
<p>Google翻訳で翻訳。</p></body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 約二次元バーコード </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong> バーコードスキャナ </strong> また、QRコードとデータマトリックスコードのような2次元バーコードを読み取る方法を理解しています。たとえば、以下のコードは、ZXingプロジェクトのホーム·ページへのハイパーリンクが含まれています。 </p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
</p>
<p> また、QRコードで連絡先情報を表しており、名刺やWebサイト上でそれを置くことができます。あなたがそれをスキャンすると、結果画面には、アクションの選択肢を提供します: </p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p> URLや連絡先情報のほかに、QRコードも含めることができます。 </p>
<ul>
<li> あなたのカレンダーに追加できるカレンダーイベント、 </li>
<li> あなたがダイヤルできる電話番号は、 </li>
<li> あなたがテキストメッセージできるSMS番号、 </li>
<li> あなたが電子メールで送ることができ、電子メールアドレス、 </li>
<li> あなたがマップで開くことができ、地理座標、 </li>
<li> あなたが読むことができるプレーンテキストは、その後、友人と共有 </li>
</ul>
<p>Google翻訳で翻訳。</p></body>
</html>
@@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> バーコードスキャナのヘルプ </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner 4.3.1</strong></p>
<p> オープンソースZXingプロジェクトの公式Androidアプリ:<br/>
<a href="http://code.google.com/p/zxing"> http://code.google.com/p/zxing </a></p>
<p> バーコードスキャナは、バーコードを読み取ると、価格やレビューなどの製品情報をルックアップするためにお使いの携帯電話のカメラを使用しています。 </p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p> また、そのようなQRコードとデータマトリクスとして2次元バーコードを読み取ります。これらは、ウェブサイト、電話番号や電子メールアドレス、その他などの連絡先情報へのリンクを含めることができます。 </p>
<ul class="touchable">
<li><a href="whatsnew.html"> このバージョンの新機能 </a></li>
<li><a href="scanning.html"> スキャンする方法 </a></li>
<li><a href="about1d.html"> 1Dバーコードについて </a></li>
<li><a href="about2d.html"> 約二次元バーコード </a></li>
<li><a href="sharing.html"> どのようにQRコードを作成する </a></li>
</ul>
<p>Google翻訳で翻訳。</p></body>
</html>
@@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> スキャンする方法 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> :バーコードが完全にファインダーの四角形の内部にあるので、電話最大ちょうどライン - バーコードスキャナは、連続して、画面に表示される正方形の領域をスキャン </p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p> 商品で見られるような1Dバーコードは、オートフォーカス機能付きの携帯電話を必要とします。それがなければ、唯一のQRコードとデータマトリクスコードがスキャン可能になります。 </p>
<p> バーコードが読み取られると、ビープ音が鳴り、あなたは、スキャン、バーコードが含まれている内容の説明、およびコンテンツに対してアクションを実行するためのオプションの結果が表示されます。 </p>
<p> あなたは、スキャンのトラブルを抱えている場合は、電話機をしっかりと抑えていることを確認してください。ピントが合っていませんであれば、バーコードからさらなるまたは近い電話を動かしてみてください。 </p>
<ul class="touchable">
<li><a href="about1d.html"> 1Dバーコードについて </a></li>
<li><a href="about2d.html"> 約二次元バーコード </a></li>
</ul>
<p>Google翻訳で翻訳。</p></body>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> どのようにQRコードを作成する </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> 2Dバーコードをスキャンするだけでなく、バーコードスキャナもQRコードを生成することができ、あなたの画面上に表示。その後、友人にそれを見せ、それらを自分の携帯電話でバーコードをスキャンさせることができます: </p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p> この機能を使用するには、主走査画面からメニューボタンを押して、共有をタップします。次に、あなたが連絡先、ブックマーク、アプリケーション、またはクリップボードの内容を共有したいと思うかどうかを選択します。 QRコードが自動的に生成されます。設定が完了したら、[戻る]または[ホームキーを押します。 </p>
<p> お使いのコンピュータからQRコードを生成するには、ZXingのQRコードジェネレータを試してください: <a href="http://zxing.appspot.com/generator/"> http://zxing.appspot.com/generator/ </a></p>
<p>Google翻訳で翻訳。</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> バーコードスキャナの新機能 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> バージョン4.3.1の新機能: </p>
<ul>
<li> それはいくつかのバグのデバイスで問題が発生した露光制御を無効にして </li>
<li> その他の小さなバグ修正 </li>
</ul>
<p>Google翻訳で翻訳。</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 1D 바코드 정보 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> 이러한 제품 포장에 인쇄 된 것과 같은 전통적인 바코드는도 1 차원 바코드로 알려져 있습니다. UPC 및 EAN 등 일반적으로 사용되는 여러 종류가 있습니다. 대부분은 다음과 유사 : </p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p> 이 1D 바코드는 일반적으로 CD 나 책 같은 제품을 설명하는 고유 한 코드가 포함되어 있습니다. 당신은 가격, 리뷰 등을 찾아 인터넷에서이 코드를 찾아 볼 수 있습니다. </p>
<p> 당신은 책을 스캔 할 경우, 당신은 또한 단어 나 문구에 대한 책의 내용을 검색하고 표시 모든 페이지를 찾을 수 있습니다 : </p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
<p>Google 번역을 통해 번역.</p></body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 에 대한 2 차원 바코드 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong> 바코드 스캐너 </strong> 또한, QR 코드 및 데이터 매트릭스 코드와 같은 2 차원 바코드를 읽는 방법을 이해하고 있습니다. 예를 들어, 아래의 코드는 ZXing 프로젝트 홈 페이지에 하이퍼 링크를 포함 : </p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
</p>
<p> 당신은 또한 QR 코드에 연락처 정보를 나타냅니다, 그리고 명함 또는 웹 사이트에 넣을 수 있습니다. 당신이 그것을 스캔하면 결과 화면이 작업의 선택을 제공합니다 : </p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p> URL 및 연락처 정보 외에, QR 코드도 포함 할 수 있습니다 : </p>
<ul>
<li> 귀하의 캘린더에 추가 할 수있는 캘린더 이벤트, </li>
<li> 당신이 전화를 걸 수 전화 번호, </li>
<li> 당신은 문자 메시지를 보낼 수있는 SMS 번호, </li>
<li> 당신은 이메일을 보낼 수 이메일 주소 </li>
<li> 당신이지도에서 열 수있는 지리 좌표, </li>
<li> 당신이 읽을 수있는 일반 텍스트는 다음 친구와 공유 </li>
</ul>
<p>Google 번역을 통해 번역.</p></body>
</html>
@@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 바코드 스캐너 도움말 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner 4.3.1</strong></p>
<p> 오픈 소스 ZXing 프로젝트의 공식 안드로이드 응용 프로그램 :<br/>
<a href="http://code.google.com/p/zxing"> http://code.google.com/p/zxing </a></p>
<p> 바코드 스캐너는 바코드를 읽어와 같은 가격과 리뷰 등의 제품 정보를 조회 할 휴대 전화의 카메라를 사용합니다. </p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p> 그것은 또한 QR 코드와 데이터 매트릭스와 같은 2 차원 바코드를 읽습니다. 이러한 웹 사이트에 대한 링크를 포함 할 수 있습니다, 같은 전화 번호와 이메일 주소 등의 정보를 문의하십시오. </p>
<ul class="touchable">
<li><a href="whatsnew.html"> 이 버전의 새로운 기능 </a></li>
<li><a href="scanning.html"> 스캔하는 방법 </a></li>
<li><a href="about1d.html"> 1D 바코드 정보 </a></li>
<li><a href="about2d.html"> 에 대한 2 차원 바코드 </a></li>
<li><a href="sharing.html"> 어떻게 QR 코드를 만드는 방법 </a></li>
</ul>
<p>Google 번역을 통해 번역.</p></body>
</html>
@@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 스캔하는 방법 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> : 바코드가 완전히 뷰 파인더의 사각형 안에하도록 전화, 조금만 라인 - 바코드 스캐너는 지속적으로 화면에 표시 사각형 영역을 검사 </p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p> 제품에서 발견 된 것과 같은 1D 바코드는 자동 초점과 전화를해야합니다. 가 없으면 만 QR 코드와 데이터 매트릭스 코드는 확인 가능한 것입니다. </p>
<p> 바코드를 읽을 때, 삐 소리가 재생됩니다 그리고 당신은 스캔, 바코드의 내용이 뭔지 설명 및 내용에 조치를 취할 수있는 옵션의 결과를 볼 수 있습니다. </p>
<p> 당신은 문제가 검색하는 데 문제가있는 경우 휴대 전화가 정상 상태에 있는지 확인하십시오. 카메라가 초점을 맞출 수없는 경우, 바코드에서 더 또는 더 가까이 휴대 전화를 이동하십시오. </p>
<ul class="touchable">
<li><a href="about1d.html"> 1D 바코드 정보 </a></li>
<li><a href="about2d.html"> 에 대한 2 차원 바코드 </a></li>
</ul>
<p>Google 번역을 통해 번역.</p></body>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 어떻게 QR 코드를 만드는 방법 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> 2D 바코드를 스캔뿐만 아니라, 바코드 스캐너는 QR 코드를 생성 할 수 있으며 화면에 표시됩니다. 그럼 당신은 친구에게 보여, 그 자신의 휴대 전화로 바코드를 스캔하도록 할 수 있습니다 : </p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p> 이 기능을 사용하려면 기본 검색 화면에서 메뉴 버튼을 누르면,하고 공유를 누릅니다. 그런 다음 연락처, 즐겨 찾기, 응용 프로그램 또는 클립 보드의 내용을 공유할지 여부를 선택합니다. QR 코드가 자동으로 생성됩니다. 이 완료되면, 뒤로 또는 홈을 누릅니다. </p>
<p> 컴퓨터에서 QR 코드를 생성하려면 ZXing QR 코드 생성기를 사용해 : <a href="http://zxing.appspot.com/generator/"> http://zxing.appspot.com/generator/ </a></p>
<p>Google 번역을 통해 번역.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 바코드 스캐너의 새로운 기능 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> 버전 4.3.1의 새로운 기능 : </p>
<ul>
<li> 그것은 여러 버그가 장치에 문제를 야기로 노출 제어를 비활성화 </li>
<li> 기타 작은 버그 수정 </li>
</ul>
<p>Google 번역을 통해 번역.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Over 1D barcodes </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Traditionele barcodes, zoals gedrukt op de verpakking, ook bekend als eendimensionale barcodes. Er zijn verschillende types gebruikt, zoals UPC en EAN. De meeste lijken op deze: </p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p> Deze 1D barcodes bevatten een unieke code die typisch beschrijft een product, zoals een cd of een boek. U kunt kijken deze code op het internet om de prijzen, reviews en nog veel meer te vinden. </p>
<p> Als u scant een boek, kunt u ook zoeken in de inhoud van het boek voor een woord of zin, en vind alle pagina's waar het verschijnt: </p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
<p>Vertaald door Google Translate.</p></body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Over 2D barcodes </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong> Barcode Scanner </strong> begrijpt ook hoe om te lezen tweedimensionale barcodes, zoals QR Codes en Data Matrix codes. Bijvoorbeeld, de volgende codes bevatten een hyperlink naar de ZXing Project home page: </p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
</p>
<p> U kunt contactgegevens ook te vertegenwoordigen in een QR-code, en zet het op een visitekaartje of website. Als u het scannen, de resultaten scherm biedt een keuze van acties: </p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p> Naast URL's en contactgegevens, kunnen QR Codes bevatten: </p>
<ul>
<li> Agenda-items, die u kunt toevoegen aan uw agenda </li>
<li> Telefoonnummers, die u kunt bellen </li>
<li> SMS-nummers, die u kunt SMS-bericht </li>
<li> E-mailadressen, die u kunt e-mailen </li>
<li> Geografische coördinaten, die u kunt openen in Google Maps </li>
<li> Platte tekst, die u kunt lezen, dan delen met een vriend </li>
</ul>
<p>Vertaald door Google Translate.</p></body>
</html>
@@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Barcode Scanner Help </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner 4.3.1</strong></p>
<p> De officiële Android app van de open source ZXing project:<br/>
<a href="http://code.google.com/p/zxing"> http://code.google.com/p/zxing </a></p>
<p> Barcode Scanner maakt gebruik van de camera op je telefoon om barcodes te lezen en op te zoeken productinformatie, zoals prijzen en reviews. </p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p> Het leest ook 2D barcodes zoals QR Codes en Data Matrix. Deze kunnen links naar websites bevatten, contactgegevens zoals telefoonnummers en e-mailadressen, en nog veel meer. </p>
<ul class="touchable">
<li><a href="whatsnew.html"> Wat is nieuw in deze versie </a></li>
<li><a href="scanning.html"> Hoe om te scannen </a></li>
<li><a href="about1d.html"> Over 1D barcodes </a></li>
<li><a href="about2d.html"> Over 2D barcodes </a></li>
<li><a href="sharing.html"> Hoe kan ik QR Codes te creëren </a></li>
</ul>
<p>Vertaald door Google Translate.</p></body>
</html>
@@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Hoe om te scannen </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Barcode Scanner scant continu een vierkant gebied op uw scherm - net line-up van de telefoon, zodat de barcode is helemaal in de zoeker rechthoek: </p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p> 1D barcodes zoals die gevonden op producten vereisen een telefoon met autofocus. Zonder dat zal alleen maar QR Codes en Data Matrix codes zijn leesbaar. </p>
<p> Wanneer een barcode wordt gelezen, zal een pieptoon te spelen en zie je de resultaten van de scan, een beschrijving van wat de barcode bevat, en opties om actie te ondernemen op de inhoud. </p>
<p> Als u problemen ondervindt bij het scannen, moet u Houd de telefoon stil. Als de camera niet kan scherpstellen, probeer dan het verplaatsen van de telefoon verder of dichter van de barcode. </p>
<ul class="touchable">
<li><a href="about1d.html"> Over 1D barcodes </a></li>
<li><a href="about2d.html"> Over 2D barcodes </a></li>
</ul>
<p>Vertaald door Google Translate.</p></body>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Hoe kan ik QR Codes te creëren </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> In aanvulling op het scannen van 2D-barcodes, kan Barcode Scanner ook het genereren van een QR-code en geeft deze weer op het scherm. Dan kunt u laten zien aan een vriend, en laat ze de streepjescode scannen met hun telefoon: </p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p> Om deze functie te gebruiken, drukt u op de knop Menu van de belangrijkste scannen scherm en tik op Delen. Vervolgens kiest u of u een contact, een bladwijzer, een toepassing, of de inhoud van het klembord te delen. Een QR-code wordt automatisch gegenereerd. Als u klaar bent, drukt u op Terug of Home. </p>
<p> Om QR Codes van uw computer te genereren, probeer dan de ZXing QR Code Generator: <a href="http://zxing.appspot.com/generator/"> http://zxing.appspot.com/generator/ </a></p>
<p>Vertaald door Google Translate.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Wat is nieuw in Barcode Scanner </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Nieuw in versie 4.3.1: </p>
<ul>
<li> Uitgeschakeld blootstelling beheersing als het veroorzaakt problemen op meerdere buggy apparaten </li>
<li> Andere kleine bugfixes </li>
</ul>
<p>Vertaald door Google Translate.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Sobre códigos de barras 1D </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Códigos de barras tradicionais, tais como aqueles impressos nas embalagens dos produtos, são também conhecidos como um código de barras de dimensão. Existem vários tipos comumente usados, incluindo UPC e EAN. Mais semelhante a este: </p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p> Estes códigos de barras 1D conter um código único, o qual geralmente descreve um produto, como um CD ou um livro. Você pode olhar este código na internet para pesquisar preços, opiniões, e muito mais. </p>
<p> Se você digitalizar um livro, você também pode pesquisar o conteúdo do livro para uma palavra ou frase, e encontrar todas as páginas em que ele aparece: </p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
<p>Traduzido pelo Google Translate.</p></body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Sobre códigos de barras 2D </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong> Barcode Scanner </strong> também entende como ler dois códigos de barras bidimensionais, como QR Codes e códigos Data Matrix. Por exemplo, os códigos abaixo contêm um link para a página do Projeto ZXing casa: </p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
</p>
<p> Você também pode representar informações de contato em um QR Code, e colocá-lo em um cartão de visita ou site. Quando você escaneá-lo, a tela de resultados fornece uma escolha de ações: </p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p> Além de URLs e informações de contato, QR Codes também pode conter: </p>
<ul>
<li> Calendário de eventos, que você pode adicionar ao seu calendário </li>
<li> Os números de telefone, que você pode discar </li>
<li> Números de SMS, que você pode mensagem de texto </li>
<li> Endereços de e-mail, que você pode enviar e-mail </li>
<li> Coordenadas geográficas, que você pode abrir em Mapas </li>
<li> Texto simples, que você pode ler, em seguida, compartilhar com um amigo </li>
</ul>
<p>Traduzido pelo Google Translate.</p></body>
</html>
@@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Ajuda Barcode Scanner </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner 4.3.1</strong></p>
<p> O app Android oficial do projeto de código aberto ZXing:<br/>
<a href="http://code.google.com/p/zxing"> http://code.google.com/p/zxing </a></p>
<p> Barcode Scanner utiliza a câmera do seu celular para ler códigos de barras e procurar informações sobre o produto, tais como preços e opiniões. </p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p> Ele também lê código de barras 2D, tais como QR Codes e matriz de dados. Estes podem conter links para web sites, informações de contato, como números de telefone e endereços de e-mail, e muito mais. </p>
<ul class="touchable">
<li><a href="whatsnew.html"> O que há de novo nesta versão </a></li>
<li><a href="scanning.html"> Como digitalizar </a></li>
<li><a href="about1d.html"> Sobre códigos de barras 1D </a></li>
<li><a href="about2d.html"> Sobre códigos de barras 2D </a></li>
<li><a href="sharing.html"> Como criar QR Codes </a></li>
</ul>
<p>Traduzido pelo Google Translate.</p></body>
</html>
@@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Como digitalizar </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Barcode Scanner examina continuamente uma região quadrada mostrado na tela - apenas a linha até o telefone para o código de barras é completamente dentro do retângulo do visor: </p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p> Códigos de barras 1D como os encontrados em produtos necessitam de um telefone com foco automático. Sem ele, apenas QR Codes e códigos Data Matrix será legível. </p>
<p> Quando um código de barras é lido, um sinal sonoro vai jogar e você vai ver os resultados da verificação, uma descrição do que contém o código de barras, e as opções a tomar medidas sobre o conteúdo. </p>
<p> Se você está tendo problemas de digitalização, certifique-se de segurar o telefone fixo. Se a câmera não consegue focar, tente mover o telefone mais próximo ou a partir do código de barras. </p>
<ul class="touchable">
<li><a href="about1d.html"> Sobre códigos de barras 1D </a></li>
<li><a href="about2d.html"> Sobre códigos de barras 2D </a></li>
</ul>
<p>Traduzido pelo Google Translate.</p></body>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Como criar QR Codes </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Além de digitalizar códigos de barras 2D, Barcode Scanner também pode gerar um QR Code e exibi-lo na tela. Então você pode mostrá-lo a um amigo, e deixe-escanear o código de barras com o seu telefone: </p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p> Para usar esse recurso, pressione o botão Menu a partir do ecrã de digitalização principal e toque em Compartilhar. Em seguida, escolha se você deseja compartilhar um contato, um marcador, um aplicativo, ou o conteúdo da área de transferência. Um QR Code será gerado automaticamente. Quando estiver pronto, pressione Voltar ou Casa. </p>
<p> Para gerar QR Codes do seu computador, experimente a Gerador de código QR ZXing: <a href="http://zxing.appspot.com/generator/"> http://zxing.appspot.com/generator/ </a></p>
<p>Traduzido pelo Google Translate.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> O que há de novo no Barcode Scanner </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Novo na versão 4.3.1: </p>
<ul>
<li> Desativado controle de exposição, uma vez que causou problemas em dispositivos de buggy vários </li>
<li> Outras pequenas correções de bugs </li>
</ul>
<p>Traduzido pelo Google Translate.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> О 1D штрих-кодов </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Традиционные штрих-коды, такие как напечатанный на упаковке продукта, также известный как одномерные штрих-коды. Есть несколько типов широко используются, в том числе UPC и EAN. Большинство выглядеть примерно так: </p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p> Эти 1D штрих-коды содержат уникальный код, который обычно описывает продукт, как компакт-диск или книгу. Вы можете посмотреть этот код на Интернет, чтобы найти цены, обзоры и многое другое. </p>
<p> Если вы сканируете книгу, вы также можете найти в содержании книги слово или фразу, и найти все страницы, где он появляется: </p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
<p>Перевод Google Translate.</p></body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> О 2D штрих-кодов </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong> Barcode Scanner </strong> также понимает, как читать двумерные штрих-коды, такие как QR-коды и коды Data Matrix. Например, код ниже, содержат гиперссылки на ZXing домашней странице проекта: </p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
</p>
<p> Вы также можете представлять контактную информацию в QR Code, и положил его на визитную карточку или веб-сайт. При сканировании она, результатов экрана обеспечивает выбор действий: </p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p> Кроме того адреса и контактные данные, QR-коды могут также содержать: </p>
<ul>
<li> Календарь событий, которые вы можете добавить в свой календарь </li>
<li> Телефонные номера, которые можно набрать </li>
<li> SMS-номера, который вы можете тексте сообщения </li>
<li> Адреса электронной почты, который вы можете по электронной почте </li>
<li> Географические координаты, которые можно открыть в карты </li>
<li> Обычный текст, который можно прочитать, а затем поделиться с другом </li>
</ul>
<p>Перевод Google Translate.</p></body>
</html>
@@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Помощь Barcode Scanner </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner 4.3.1</strong></p>
<p> Официальное приложение для Android проекта с открытым ZXing источник:<br/>
<a href="http://code.google.com/p/zxing"> http://code.google.com/p/zxing </a></p>
<p> Barcode Scanner использует камеру на телефоне, чтобы читать штрих-код и посмотреть информацию о продуктах, таких как цены и отзывы. </p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p> Он также читает 2D штрих-коды, такие как QR-коды и Data Matrix. Они могут содержать ссылки на веб-сайты, контактную информацию, такую как номера телефонов и адреса электронной почты и многое другое. </p>
<ul class="touchable">
<li><a href="whatsnew.html"> Что нового в этой версии </a></li>
<li><a href="scanning.html"> Как проверить </a></li>
<li><a href="about1d.html"> О 1D штрих-кодов </a></li>
<li><a href="about2d.html"> О 2D штрих-кодов </a></li>
<li><a href="sharing.html"> Как создать QR-коды </a></li>
</ul>
<p>Перевод Google Translate.</p></body>
</html>
@@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Как проверить </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Штрих коды непрерывно сканирует площадь области, показанной на экране - просто линия телефона, чтобы штрих-код полностью внутри видоискателя прямоугольника: </p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p> 1D штрих-кодов как найденные на продукты требуют телефону с автофокусом. Без него, только QR-коды и коды Data Matrix будет развертываемых. </p>
<p> Если штрих-код считывается, звуковой сигнал будет играть, и вы увидите результаты проверки, описание того, что штрих-код содержит и варианты принятия решений по содержанию. </p>
<p> Если у вас возникли проблемы сканирования, убедитесь, что держать телефон постоянно. Если фотокамера не может сфокусироваться, попробуйте переместить телефон дальше или ближе от штрих-кода. </p>
<ul class="touchable">
<li><a href="about1d.html"> О 1D штрих-кодов </a></li>
<li><a href="about2d.html"> О 2D штрих-кодов </a></li>
</ul>
<p>Перевод Google Translate.</p></body>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Как создать QR-коды </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> В дополнение к сканированию 2D штрих-кодов, штрих-код сканером также может генерировать QR-код и отображает его на экране. Затем вы можете показать его другу, и пусть они сканировать штрих-код с телефона: </p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p> Чтобы использовать эту функцию, нажмите кнопку меню на главном экране сканирования и нажмите Отправить. Затем выберите, хотите ли вы поделиться контакт, закладки, приложения или содержимое буфера обмена. QR-код будет сгенерирован автоматически. Когда вы закончите, нажмите кнопку Назад или дома. </p>
<p> Для создания QR-коды с компьютера, попробуйте ZXing QR Генератор кода: <a href="http://zxing.appspot.com/generator/"> http://zxing.appspot.com/generator/ </a></p>
<p>Перевод Google Translate.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> Что нового в Barcode Scanner </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> Новое в версии 4.3.1: </p>
<ul>
<li> Отключен контроль экспозиции, как это вызвало проблемы на нескольких устройствах багги </li>
<li> Другие мелкие исправления ошибка </li>
</ul>
<p>Перевод Google Translate.</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 关于一维条码 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> 传统的条形码,如产品包装上印刷,也被称为一维条形码。常用的有几种类型,包括UPC和EAN。大多数看起来像这样: </p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p> 这些一维条码包含一个独特的代码,它通常描述了一种产品,如CD或一本书。你可以看一下这段代码,在互联网上找到价格,评论等。 </p>
<p> 如果扫描一本书,你也可以为一个词或短语搜索本书的内容,它出现的地方找到的所有网页: </p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
<p>谷歌翻译,译。</p></body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 关于二维条码 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong> 条码扫描器 </strong> 还知道如何读取二维条形码,QR码和Data Matrix码。例如,下面的代码包含超链接的ZXing项目主页: </p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
</p>
<p> 您也可以在QR码代表的联系信息,并把它放在一张名片或网站。当您扫描,结果屏幕提供了一个可供选择的行动: </p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p> 除了网址和联系方式,QR码还可以包含以下内容: </p>
<ul>
<li> 日历事件,您可以添加到您的日历 </li>
<li> 您可以拨打的电话号码, </li>
<li> 短信号码,您可以短信 </li>
<li> 您可以通过电子邮件的电子邮件地址, </li>
<li> 地理坐标,你可以打开地图 </li>
<li> 纯文本,你可以阅读,然后与朋友分享 </li>
</ul>
<p>谷歌翻译,译。</p></body>
</html>
@@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 条码扫描器说明 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner 4.3.1</strong></p>
<p> 官方的Android应用程序的开源ZXing项目:<br/>
<a href="http://code.google.com/p/zxing"> http://code.google.com/p/zxing </a></p>
<p> 条码扫描器在您的手机上使用摄像头读取条形码,查询产品的信息,如价格和评论。 </p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p> 此外,还可以读取QR码和Data Matrix二维条码,如。这些都可以包含网站的链接,联系信息,如电话号码和电子邮件地址,以及更多。 </p>
<ul class="touchable">
<li><a href="whatsnew.html"> 在这个版本中有什么新功能 </a></li>
<li><a href="scanning.html"> 如何扫描 </a></li>
<li><a href="about1d.html"> 关于一维条码 </a></li>
<li><a href="about2d.html"> 关于二维条码 </a></li>
<li><a href="sharing.html"> 如何创建QR码 </a></li>
</ul>
<p>谷歌翻译,译。</p></body>
</html>
@@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 如何扫描 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> 持续不断地扫描条码扫描仪屏幕上显示的一个方形区域 - 只是了电话线,使条码是完全取景器内的矩形: </p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p> 一维条码的产品需要一个电话,支持自动对焦。如果没有它,QR码和Data Matrix码将被扫描。 </p>
<p> 当条码阅读,蜂鸣声会玩,你会看到扫描的条形码包含的描述和选项的内容采取行动的结果。 </p>
<p> 如果你有麻烦扫描,请一定要保持稳定的手机。如果相机无法对焦,尝试从条形码移动电话或接近的。 </p>
<ul class="touchable">
<li><a href="about1d.html"> 关于一维条码 </a></li>
<li><a href="about2d.html"> 关于二维条码 </a></li>
</ul>
<p>谷歌翻译,译。</p></body>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 如何创建QR码 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> 除了扫描二维条码,条码扫描仪还可以产生一个QR码,并将其显示在屏幕上。然后你就可以显示给朋友,让他们用自己的手机扫描条形码: </p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p> 要使用此功能,请从主扫描屏幕上的菜单按钮,并点击“分享”。然后选择是否要共享联系人,书签,应用程序,或将剪贴板的内容。将自动生成的QR码。当你完成后,按返回或家庭。 </p>
<p> 要生成QR码从您的计算机,尝试的ZXing QR代码生成: <a href="http://zxing.appspot.com/generator/"> http://zxing.appspot.com/generator/ </a></p>
<p>谷歌翻译,译。</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 有什么新的条码扫描器 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> 新的版本4.3.1 </p>
<ul>
<li> 残疾人曝光控制,它引起的问题在几个车设备 </li>
<li> 其他小的bug修复 </li>
</ul>
<p>谷歌翻译,译。</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 關於一維條碼 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> 傳統的條形碼,如產品包裝上印刷,也被稱為一維條形碼。常用的有幾種類型,包括UPC和EAN。大多數看起來像這樣: </p>
<p class="imgcenter"><img src="../images/big-1d.png"/></p>
<p> 這些一維條碼包含一個獨特的代碼,它通常描述了一種產品,如CD或一本書。你可以看一下這段代碼,在互聯網上找到價格,評論等。 </p>
<p> 如果掃描一本書,你也可以為一個詞或短語搜索本書的內容,它出現的地方找到的所有網頁: </p>
<p class="imgcenter"><img src="../images/search-book-contents.jpg"/></p>
<p>谷歌翻譯,譯。</p></body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 關於二維條碼 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong> 條碼掃描器 </strong> 還知道如何讀取二維條形碼,QR碼和Data Matrix碼。例如,下面的代碼包含超鏈接的ZXing項目主頁: </p>
<p class="imgcenter">
<img src="../images/big-qr.png"/>
<img src="../images/big-datamatrix.png"/>
</p>
<p> 您也可以在QR碼代表的聯繫信息,並把它放在一張名片或網站。當您掃描,結果屏幕提供了一個可供選擇的行動: </p>
<p class="imgcenter"><img src="../images/contact-results-screen.jpg"/></p>
<p> 除了網址和聯繫方式,QR碼還可以包含以下內容: </p>
<ul>
<li> 日曆事件,您可以添加到您的日曆 </li>
<li> 您可以撥打的電話號碼, </li>
<li> 短信號碼,您可以短信 </li>
<li> 您可以通過電子郵件的電子郵件地址, </li>
<li> 地理坐標,你可以打開地圖 </li>
<li> 純文本,你可以閱讀,然後與朋友分享 </li>
</ul>
<p>谷歌翻譯,譯。</p></body>
</html>
@@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 條碼掃描器說明 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p><strong>Barcode Scanner 4.3.1</strong></p>
<p> 官方的Android應用程序的開源ZXing項目:<br/>
<a href="http://code.google.com/p/zxing"> http://code.google.com/p/zxing </a></p>
<p> 條碼掃描器在您的手機上使用攝像頭讀取條形碼,查詢產品的信息,如價格和評論。 </p>
<p class="imgcenter"><img src="../images/scan-example.png"/></p>
<p> 此外,還可以讀取QR碼和Data Matrix二維條碼,如。這些都可以包含網站的鏈接,聯繫信息,如電話號碼和電子郵件地址,以及更多。 </p>
<ul class="touchable">
<li><a href="whatsnew.html"> 在這個版本中有什麼新功能 </a></li>
<li><a href="scanning.html"> 如何掃描 </a></li>
<li><a href="about1d.html"> 關於一維條碼 </a></li>
<li><a href="about2d.html"> 關於二維條碼 </a></li>
<li><a href="sharing.html"> 如何創建QR碼 </a></li>
</ul>
<p>谷歌翻譯,譯。</p></body>
</html>
@@ -0,0 +1,19 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 如何掃描 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> 持續不斷地掃描條碼掃描儀屏幕上顯示的一個方形區域 - 只是了電話線,使條碼是完全取景器內的矩形: </p>
<p class="imgcenter"><img src="../images/demo-yes.png" style="padding:5px"/><img src="../images/demo-no.png" style="padding:5px"/></p>
<p> 一維條碼的產品需要一個電話,支持自動對焦。如果沒有它,QR碼和Data Matrix碼將被掃描。 </p>
<p> 當條碼閱讀,蜂鳴聲會玩,你會看到掃描的條形碼包含的描述和選項的內容採取行動的結果。 </p>
<p> 如果你有麻煩掃描,請一定要保持穩定的手機。如果相機無法對焦,嘗試從條形碼移動電話或接近的。 </p>
<ul class="touchable">
<li><a href="about1d.html"> 關於一維條碼 </a></li>
<li><a href="about2d.html"> 關於二維條碼 </a></li>
</ul>
<p>谷歌翻譯,譯。</p></body>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 如何創建QR碼 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> 除了掃描二維條碼,條碼掃描儀還可以產生一個QR碼,並將其顯示在屏幕上。然後你就可以顯示給朋友,讓他們用自己的手機掃描條形碼: </p>
<p class="imgcenter"><img src="../images/scan-from-phone.png"/></p>
<p> 要使用此功能,請從主掃描屏幕上的菜單按鈕,並點擊“分享”。然後選擇是否要共享聯繫人,書籤,應用程序,或將剪貼板的內容。將自動生成的QR碼。當你完成後,按返回或家庭。 </p>
<p> 要生成QR碼從您的計算機,嘗試的ZXing QR代碼生成: <a href="http://zxing.appspot.com/generator/"> http://zxing.appspot.com/generator/ </a></p>
<p>谷歌翻譯,譯。</p></body>
</html>
@@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title> 有什麼新的條碼掃描器 </title>
<link href="../style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p> 新的版本4.3.1 </p>
<ul>
<li> 殘疾人曝光控制,它引起的問題在幾個車設備 </li>
<li> 其他小的bug修復 </li>
</ul>
<p>谷歌翻譯,譯。</p></body>
</html>
@@ -1,17 +0,0 @@
<html>
<head>
<title>About 1D barcodes</title>
<link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body>
<p>Traditional barcodes, such as those printed on product packaging, are also known as <em>one
dimensional barcodes</em>. There are several types commonly used, including UPC and EAN. Most look
similar to this:</p>
<p style="text-align:center"><img src="../images/big-1d.png"></p>
<p>These 1D barcodes contain a unique code which typically describes a product, like a CD or a book.
You can look this code up on the internet to find prices, reviews, and more.</p>
<p>If you scan a book, you can also search the contents of the book for a word or phrase, and find
all the pages where it appears:</p>
<center><p><img src="../images/search-book-contents.jpg"></p></center>
</body>
</html>
@@ -1,27 +0,0 @@
<html>
<head>
<title>About 2D barcodes</title>
<link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body>
<p><b>Barcode Scanner</b> also understands how to read two dimensional barcodes, like <em>QR
Codes</em> and <em>Data Matrix codes</em>.
For example, the codes below contain a hyperlink to the ZXing Project home page:</p>
<p style="text-align:center">
<img src="../images/big-qr.png" alt="QR code">
<img src="../images/big-datamatrix.png" alt="Data Matrix">
</p>
<p>You can also represent contact information in a QR Code, and put it on a business card or web
site. When you scan it, the results screen provides a choice of actions:</p>
<p style="text-align:center"><img src="../images/contact-results-screen.jpg" alt="Contact results screen"></p>
<p>Besides URLs and contact info, QR Codes can also contain:</p>
<ul>
<li>Calendar events, which you can add to your Calendar</li>
<li>Phone numbers, which you can dial</li>
<li>SMS numbers, which you can text message</li>
<li>Email addresses, which you can email</li>
<li>Geographic coordinates, which you can open in Maps</li>
<li>Plain text, which you can read, then share with a friend</li>
</ul>
</body>
</html>
@@ -1,21 +0,0 @@
<html>
<head>
<title>Barcode Scanner Help</title>
<link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body>
<p><b>Barcode Scanner</b> uses the camera on your phone to read barcodes and look up product
information such as prices and reviews.</p>
<p style="text-align:center"><img src="../images/scan-example.png" alt="Scan example"></p>
<p>It also reads <strong>2D barcodes</strong> such as <em>QR Codes</em> and <em>Data Matrix</em>.
These can contain links to web sites, contact information such as phone numbers and email
addresses, and more.</p>
<ul class="touchable">
<li><a href="whatsnew.html">What's new in this version</a></li>
<li><a href="scanning.html">How to scan</a></li>
<li><a href="about1d.html">About 1D barcodes</a></li>
<li><a href="about2d.html">About 2D barcodes</a></li>
<li><a href="sharing.html">How to create QR Codes</a></li>
</ul>
</body>
</html>
@@ -1,23 +0,0 @@
<html>
<head>
<title>How to scan</title>
<link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body>
<p>Barcode Scanner continuously scans a square region shown on your screen &mdash; just line up the
phone so the barcode is completely inside the viewfinder rectangle:</p>
<p style="text-align:center">
<img src="../images/demo-yes.png" alt="Yes"/>&nbsp;&nbsp;&nbsp;<img src="../images/demo-no.png" alt="No"/>
</p>
<p><b>IMPORTANT:</b> 1D barcodes like those found on products require a phone with autofocus.
Without it, only QR Codes and Data Matrix codes will be scannable.</p>
<p>When a barcode is read, a beep sound will play and you'll see the results of the scan, a
description of what the barcode contains, and options to take action on the contents.</p>
<p>If you're having trouble scanning, make sure to hold the phone steady. If the camera is unable to
focus, try moving the phone further or closer from the barcode.</p>
<ul class="touchable">
<li><a href="about1d.html">About 1D barcodes</a></li>
<li><a href="about2d.html">About 2D barcodes</a></li>
</ul>
</body>
</html>
@@ -1,17 +0,0 @@
<html>
<head>
<title>How to create QR Codes</title>
<link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body>
<p>In addition to <a href="about2d.html">scanning 2D barcodes</a>, <b>Barcode Scanner</b> can also
generate a QR Code and display it on your screen. Then you can show it to a friend, and let them
scan the barcode with their phone:</p>
<center><p><img src="../images/scan-from-phone.png" alt="Scan from phone"></p></center>
<p>To use this feature, press the Menu button from the main scanning screen, and tap Share. Then
choose whether you want to share a contact, a bookmark, an application, or the contents of the
clipboard. A QR Code will be generated automatically. When you're done, press Back or Home.</p>
<p>To generate QR Codes from your computer, try the
<a href="http://zxing.appspot.com/generator/">ZXing QR Code Generator</a>.</p>
</body>
</html>
@@ -1,10 +0,0 @@
body {
background-color: white;
color: black;
font-family: Arial sans-serif;
font-size: 12pt;
}
ul.touchable li {
padding-top:8px;
padding-bottom:8px;
}
@@ -1,23 +0,0 @@
<html>
<head>
<title>What's new in Barcode Scanner</title>
<link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body>
<p><b>New in version 3.61:</b></p>
<ul>
<li>Fixed a couple of crashes.</li>
<li>Made items in the History easier to read.</li>
</ul>
<p><b>New in version 3.6:</b></p>
<ul>
<li>Added support for the Motorola Xoom and other tablets.</li>
<li>Added the ability to type in text and encode it as a QR Code.</li>
<li>Added support for many more locales for web search and product search.</li>
<li>Provided a choice of creating a new contact or merging with an existing one.</li>
<li>Allowed third party apps to specify the size of the scanning rectangle.</li>
<li>Added Hebrew translation and improved others.</li>
<li>Fixed a crash with WiFi codes.</li>
</ul>
</body>
</html>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

@@ -0,0 +1,10 @@
body {
font-family:sans-serif;
}
ul.touchable li {
padding-top:8px;
padding-bottom:8px;
}
p.imgcenter {
text-align:center;
}
@@ -1,16 +0,0 @@
# This file is used to override default values used by the Ant build system.
#
# This file must be checked in Version Control Systems, as it is
# integral to the build system of your project.
# The name of your application package as defined in the manifest.
# Used by the 'uninstall' rule.
application-package=com.google.zxing.client.android
# The name of the source folder.
#source-folder=src
# The name of the output folder.
#out-folder=bin
external-libs-folder=external-libs
+72 -305
View File
@@ -14,328 +14,95 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="BarcodeScanner" default="debug">
<project name="BarcodeScanner" default="help">
<!-- Normally the Android build system looks for a local.properties. Since that's only used
to find the SDK location, I've removed it and pointed us at the global ZXing build.properties. -->
<property file="../build.properties"/>
<!-- Parts of the Android build system insist on the name 'sdk-location', so alias it. -->
<property name="sdk.dir" value="${android-home}"/>
<!-- The local.properties file is created and updated by the 'android' tool.
It contains the path to the SDK. It should *NOT* be checked into
Version Control Systems. -->
<loadproperties srcFile="local.properties" />
<!-- The build.properties file can be created by you and is never touched
by the 'android' tool. This is the place to change some of the default property values
used by the Ant rules.
Here are some properties you may want to change/update:
<!-- The ant.properties file can be created by you. It is only edited by the
'android' tool to add properties to it.
This is the place to change some Ant specific build properties.
Here are some properties you may want to change/update:
application-package
the name of your application package as defined in the manifest. Used by the
'uninstall' rule.
source-folder
the name of the source folder. Default is 'src'.
out-folder
the name of the output folder. Default is 'bin'.
source.dir
The name of the source directory. Default is 'src'.
out.dir
The name of the output directory. Default is 'bin'.
Properties related to the SDK location or the project target should be updated
using the 'android' tool with the 'update' action.
For other overridable properties, look at the beginning of the rules
files in the SDK, at tools/ant/build.xml
This file is an integral part of the build system for your application and
should be checked in in Version Control Systems.
Properties related to the SDK location or the project target should
be updated using the 'android' tool with the 'update' action.
-->
<property file="build.properties"/>
This file is an integral part of the build system for your
application and should be checked into Version Control Systems.
<!-- The default.properties file is created and updated by the 'android' tool, as well as ADT.
This file is an integral part of the build system for your application and
should be checked in in Version Control Systems. -->
<property file="default.properties"/>
-->
<property file="ant.properties" />
<!-- Custom Android task to deal with the project target, and import the proper rules.
This requires ant 1.6.0 or above. -->
<path id="android.antlibs">
<pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
<pathelement path="${sdk.dir}/tools/lib/sdklib.jar" />
<pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" />
<pathelement path="${sdk.dir}/tools/lib/apkbuilder.jar" />
<pathelement path="${sdk.dir}/tools/lib/jarutils.jar" />
</path>
<!-- The project.properties file is created and updated by the 'android'
tool, as well as ADT.
<taskdef name="setup"
classname="com.android.ant.SetupTask"
classpathref="android.antlibs"/>
This contains project specific properties such as project target, and library
dependencies. Lower level build properties are stored in ant.properties
(or in .classpath for Eclipse projects).
<!-- Execute the Android Setup task that will setup some properties specific to the target,
and import the rules files.
To customize the rules, copy/paste them below the task, and disable import by setting
the import attribute to false:
<setup import="false" />
This file is an integral part of the build system for your
application and should be checked into Version Control Systems. -->
<loadproperties srcFile="project.properties" />
This will ensure that the properties are setup correctly but that your customized
targets are used.
-->
<setup import="false" />
<!-- quick check on sdk.dir -->
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
unless="sdk.dir"
/>
<!-- Custom tasks -->
<taskdef name="aaptexec"
classname="com.android.ant.AaptExecLoopTask"
classpathref="android.antlibs"/>
<taskdef name="apkbuilder"
classname="com.android.ant.ApkBuilderTask"
classpathref="android.antlibs"/>
<!-- extension targets. Uncomment the ones where you want to do custom work
in between standard targets -->
<!--
<target name="-pre-build">
</target>
<target name="-pre-compile">
</target>
<!-- Properties -->
/* This is typically used for code obfuscation.
Compiled code location: ${out.classes.absolute.dir}
If this is not done in place, override ${out.dex.input.absolute.dir} */
<target name="-post-compile">
</target>
-->
<property name="android-tools" value="${sdk.dir}/tools" />
<property name="platform-tools" value="${sdk.dir}/platform-tools" />
<!-- Import the actual build file.
<!-- Input directories -->
<property name="source-folder" value="src" />
<property name="gen-folder" value="gen" />
<property name="resource-folder" value="res" />
<property name="asset-folder" value="assets" />
<property name="source-location" value="${basedir}/${source-folder}" />
To customize existing targets, there are two options:
- Customize only one target:
- copy/paste the target into this file, *before* the
<import> task.
- customize it to your needs.
- Customize the whole content of build.xml
- copy/paste the content of the rules files (minus the top node)
into this file, replacing the <import> task.
- customize to your needs.
<!-- folder for the 3rd party java libraries -->
<!--<property name="external-libs-folder" value="../core" />-->
***********************
****** IMPORTANT ******
***********************
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
in order to avoid having your file be overridden by tools such as "android update project"
-->
<!-- version-tag: 1 -->
<import file="${sdk.dir}/tools/ant/build.xml" />
<!-- Output directories -->
<property name="gen-folder" value="gen" />
<property name="out-folder" value="bin" />
<property name="out-classes" value="${out-folder}/classes" />
<property name="out-classes-location" value="${basedir}/${out-classes}"/>
<!-- out folders for a parent project if this project is an instrumentation project -->
<property name="main-out-folder" value="../${out-folder}" />
<property name="main-out-classes" value="${main-out-folder}/classes"/>
<!-- These targets only exist so they will be visible in IntelliJ. -->
<target name="ij-debug" depends="clean,debug"/>
<target name="ij-release" depends="clean,release"/>
<target name="ij-install" depends="clean">
<exec command="ant debug install"/>
</target>
<target name="ij-uninstall" depends="uninstall"/>
<!-- Intermediate files -->
<property name="dex-file" value="classes.dex" />
<property name="intermediate-dex" value="${out-folder}/${dex-file}" />
<!-- dx does not properly support incorrect / or \ based on the platform
and Ant cannot convert them because the parameter is not a valid path.
Because of this we have to compute different paths depending on the platform. -->
<condition property="intermediate-dex-location"
value="${basedir}\${intermediate-dex}"
else="${basedir}/${intermediate-dex}" >
<os family="windows"/>
</condition>
<!-- The final package file to generate -->
<property name="out-debug-package" value="${out-folder}/${ant.project.name}-debug.apk"/>
<!-- Tools -->
<condition property="exe" value=".exe" else=""><os family="windows"/></condition>
<property name="adb" value="${platform-tools}/adb${exe}"/>
<!-- rules -->
<!-- Create the output directories if they don't exist yet. All builds do a clean first
to prevent stale resources and to make ProGuard happy. -->
<target name="dirs" depends="clean">
<echo>Creating output directories if needed...</echo>
<mkdir dir="${resource-folder}" />
<mkdir dir="${external-libs-folder}" />
<mkdir dir="${gen-folder}" />
<mkdir dir="${out-folder}" />
<mkdir dir="${out-classes}" />
</target>
<!-- Generate the R.java file for this project's resources. -->
<target name="resource-src" depends="dirs">
<echo>Generating R.java / Manifest.java from the resources...</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-m" />
<arg value="-J" />
<arg path="${gen-folder}" />
<arg value="-M" />
<arg path="AndroidManifest.xml" />
<arg value="-S" />
<arg path="${resource-folder}" />
<arg value="-I" />
<arg path="${android.jar}" />
</exec>
</target>
<!-- Generate java classes from .aidl files. -->
<target name="aidl" depends="dirs">
<echo>Compiling aidl files into Java classes...</echo>
<apply executable="${aidl}" failonerror="true">
<arg value="-p${android-aidl}" />
<arg value="-I${source-folder}" />
<arg value="-o${gen-folder}" />
<fileset dir="${source-folder}">
<include name="**/*.aidl"/>
</fileset>
</apply>
</target>
<!-- Compile this project's .java files into .class files. -->
<target name="compile" depends="resource-src, aidl">
<javac encoding="ascii" target="1.5" debug="false" extdirs=""
destdir="${out-classes}"
bootclasspathref="android.target.classpath"
includeantruntime="false">
<src path="${source-folder}" />
<src path="${gen-folder}" />
<classpath>
<fileset dir="${external-libs-folder}" includes="*.jar"/>
<!-- yeah, want to not use this mechanism above -->
<pathelement path="../core/core.jar"/>
<pathelement path="${main-out-classes}"/>
</classpath>
</javac>
<unzip src="../core/core.jar" dest="${out-classes}" overwrite="true"/>
<antcall target="optimize"/>
</target>
<target name="optimize" unless="no-optimize">
<mkdir dir="optimized"/>
<property name="libraryjars.path" refid="android.target.classpath"/>
<java jar="${proguard-jar}" fork="true" failonerror="true">
<jvmarg value="-Dmaximum.inlined.code.length=48"/>
<arg value="-injars ${out-classes}"/>
<arg value="-outjars optimized"/>
<arg value="-libraryjars ${libraryjars.path}"/>
<arg value="-keep class com.google.zxing.client.android.*Activity"/>
<arg value="-keep class com.google.zxing.client.android.ViewfinderView { public * ; }"/>
<arg value="-keep class com.google.zxing.client.android.book.SearchBookContents* { public * ; }"/>
<arg value="-target 5"/>
<arg value="-optimizationpasses 5"/>
<arg value="-optimizations !field/*,!class/merging/*"/> <!-- works around dex VerifyError -->
<arg value="-dontshrink"/>
<arg value="-dontobfuscate"/>
<arg value="-dontskipnonpubliclibraryclasses"/>
<arg value="-verbose"/>
<arg value="-dump proguard-dump.txt"/>
</java>
<delete dir="${out-classes}"/>
<move file="optimized" tofile="${out-classes}"/>
</target>
<!-- Convert this project's .class files into .dex files. -->
<target name="dex" depends="compile">
<echo>Converting compiled files and external libraries into ${out-folder}/${dex-file}...</echo>
<apply executable="${dx}" failonerror="true" parallel="true">
<arg value="-JXmx256M"/>
<arg value="--dex" />
<arg value="--output=${intermediate-dex-location}" />
<arg path="${out-classes-location}" />
<fileset dir="${external-libs-folder}" includes="*.jar"/>
</apply>
</target>
<!-- Put the project's resources into the output package file
This actually can create multiple resource package in case
Some custom apk with specific configuration have been
declared in default.properties.
-->
<target name="package-resources">
<echo>Packaging resources</echo>
<aaptexec executable="${aapt}"
command="package"
manifest="AndroidManifest.xml"
assets="${asset-folder}"
androidjar="${android.jar}"
apkfolder="${out-folder}"
resourcefilename="${ant.project.name}">
<res path="${resource-folder}"/>
</aaptexec>
</target>
<!--
Getting an error like this?
[apply] UNEXPECTED TOP-LEVEL EXCEPTION:
[apply] com.android.dx.cf.code.SimException: local variable type
mismatch: attempt to set or access a value of type int using a local
variable of type com.google.zxing.qrcode.decoder.Version. This is
symptomatic of .class transformation tools that ignore local variable
information.
Build core/ with the 'build-no-debug' target. It's a long story.
-->
<!-- Package the application and sign it with a debug key.
This is the default target when building. It is used for debug. -->
<target name="debug" depends="dex, package-resources">
<apkbuilder
outfolder="${out-folder}"
resourcefile="BarcodeScanner"
apkfilepath="${out-folder}/BarcodeScanner-debug.apk"
debugpackaging="true"
debugsigning="true"
verbose="false">
<dex path="${intermediate-dex-location}" />
<sourcefolder path="${source-folder}" />
<jarfolder path="${external-libs-folder}" />
</apkbuilder>
<copy file="${out-folder}/BarcodeScanner-debug.apk" tofile="${out-folder}/temp.apk" overwrite="true"/>
<exec executable="${android-tools}/zipalign">
<arg value="-f"/>
<arg value="-v"/>
<arg value="4"/>
<arg value="${out-folder}/temp.apk"/>
<arg value="${out-folder}/BarcodeScanner-debug.apk"/>
</exec>
</target>
<!-- Package the application without signing it.
This allows for the application to be signed later with an official publishing key. -->
<target name="release" depends="dex, package-resources">
<apkbuilder
outfolder="${out-folder}"
resourcefile="BarcodeScanner"
apkfilepath="${out-folder}/BarcodeScanner-unsigned.apk"
debugpackaging="false"
debugsigning="false"
verbose="false">
<dex path="${intermediate-dex-location}" />
<sourcefolder path="${source-folder}" />
<jarfolder path="${external-libs-folder}" />
</apkbuilder>
<echo>All generated packages need to be signed with jarsigner before they are published.</echo>
<echo>Also run zipalign -f -v 4 BarcodeScanner.apk BarcodeScanner-aligned.apk after signing</echo>
</target>
<!-- Install (or reinstall) the package on the default emulator -->
<target name="install" depends="debug">
<echo>Installing ${out-debug-package} onto default emulator...</echo>
<exec executable="${adb}" failonerror="true">
<arg value="install" />
<arg value="-r" />
<arg path="${out-debug-package}" />
</exec>
</target>
<!-- Uinstall the package from the default emulator -->
<target name="uninstall">
<echo>Uninstalling ${application-package} from the default emulator...</echo>
<exec executable="${adb}" failonerror="true">
<arg value="uninstall" />
<arg value="${application-package}" />
</exec>
</target>
<target name="help">
<echo>Android Ant Build. Available targets:</echo>
<echo> help: Displays this help.</echo>
<echo> debug: Builds the application and sign it with a debug key.</echo>
<echo> release: Builds the application. The generated apk file must be</echo>
<echo> signed before it is published.</echo>
<echo> install: Installs the debug package onto a running emulator or</echo>
<echo> device. This can only be used if the application has </echo>
<echo> not yet been installed.</echo>
<echo> reinstall: Installs the debug package on a running emulator or</echo>
<echo> device that already has the application.</echo>
<echo> The signatures must match.</echo>
<echo> uninstall: uninstall the application from a running emulator or</echo>
<echo> device.</echo>
</target>
<target name="clean">
<delete dir="${out-folder}"/>
<delete dir="${gen-folder}"/>
</target>
</project>

Some files were not shown because too many files have changed in this diff Show More