[redacted]

This commit is contained in:
Jesse MacFadyen
2014-02-14 01:25:32 -08:00
parent 30ee1377ac
commit d04a3bb777
3302 changed files with 0 additions and 672075 deletions

3
.gitignore vendored
View File

@@ -1,3 +0,0 @@
.DS_Store
.svn
*/.svn/*

View File

@@ -1,43 +0,0 @@
package com.seltzlab.mobile;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.accounts.Account;
import android.accounts.AccountManager;
import org.apache.cordova.DroidGap;
import org.apache.cordova.api.Plugin;
import org.apache.cordova.api.PluginResult;
public class AccountList extends Plugin {
@Override
public PluginResult execute(String action, JSONArray args, String callbackId) {
try {
JSONObject obj = args.getJSONObject(0);
AccountManager am = AccountManager.get(cordova.getActivity());
Account[] accounts;
if (obj.has("type"))
accounts = am.getAccountsByType(obj.getString("type"));
else
accounts = am.getAccounts();
JSONArray res = new JSONArray();
for (int i = 0; i < accounts.length; i++) {
Account a = accounts[i];
res.put(a.name);
}
return new PluginResult(PluginResult.Status.OK, res);
} catch (JSONException e) {
return new PluginResult(PluginResult.Status.JSON_EXCEPTION);
}
}
}

View File

@@ -1,35 +0,0 @@
AccountList Phonegap Plugin for Android
=======================================
This plugin allows you to obtain an array containing all the accounts configured on the device
Adding the Plugin to your project
=================================
To install the plugin, copy accountlist.js to your project's www folder and include a reference to it in your html files.
<script type="text/javascript" src="accountlist.js"></script>
Create a folder called 'com/seltzlab/mobile' within your project's src folder and copy AccountList.java file into that new folder.
Add a plugin line to res/xml/plugins.xml
<plugin name="AccountList" value="com.seltzlab.mobile.AccountList" />
Add a permission line to the AndroidManifest.xml
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
Using the plugin
================
window.plugins.AccountList.get(
{
type: 'account type' // if not specified get all accounts
// google account example: 'com.google'
},
function (result) {
console.log(result.length);
for (i in res)
console.log(result[i]);
},
function (error) {
console.log(error);
}
);

View File

@@ -1,23 +0,0 @@
var AccountList = function(gap) {
AccountList.prototype.get = function(params, success, fail) {
return gap.exec( function(args) {
success(args);
}, function(args) {
fail(args);
}, 'AccountList', '', [params]);
};
gap.addConstructor(function () {
if (gap.addPlugin) {
gap.addPlugin("AccountList", new AccountList());
} else {
if (!window.plugins) {
window.plugins = {};
}
window.plugins.AccountList = new AccountList();
}
});
})(window.cordova || window.Cordova || window.PhoneGap);

View File

@@ -1 +0,0 @@
This plugin is now located at https://github.com/AndiDog/phonegap-android-actionbarsherlock-tabbar-plugin

View File

@@ -1,62 +0,0 @@
libGoogleAnalytics.jar is distributed under Apache License, Version 2.0.
The text of the Apache License, Version 2.0 licenses is reproduced below.
----------------------------------------------
Apache License, Version 2.0
FoundationProjectsPeopleGet InvolvedDownloadSupport ApacheHome » Licenses
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

View File

@@ -1,64 +0,0 @@
PhoneGap is available under *either* the terms of the modified BSD license *or* the
MIT License (2008). As a recipient of PhonegGap, you may choose which
license to receive this code under (except as noted in per-module LICENSE
files). Some modules may not be the copyright of Nitobi. These
modules contain explicit declarations of copyright in both the LICENSE files in
the directories in which they reside and in the code itself. No external
contributions are allowed under licenses which are fundamentally incompatible
with the MIT or BSD licenses that PhoneGap is distributed under.
The text of the MIT and BSD licenses is reproduced below.
-------------------------------------------------------------------------------
The "New" BSD License:
**********************
Copyright (c) 2005-2010, Nitobi Software Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of Phonegap/Nitobi nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------------------
The MIT License
*****************
Copyright (c) <2010> <Nitobi Software Inc., et. al., >
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
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.

View File

@@ -1,179 +0,0 @@
# Analytics plugin for Phonegap #
The analytics client allows you to send page views to Google Analytics server.
A simple use case would be:
- Initialize Analytics object with the appropriate Google Analytics account.
- Send page views upon user navigation.
- Send events upon user interaction.
## Adding the Plugin to your project ##
Using this plugin requires [Android PhoneGap](http://github.com/phonegap/phonegap-android).
1. To install the plugin, move www/analytics.js to your project's www folder and include a reference to it in your html file after phonegap.js.
&lt;script type="text/javascript" charset="utf-8" src="phonegap.js"&gt;&lt;/script&gt;<br/>
&lt;script type="text/javascript" charset="utf-8" src="analytics.js"&gt;&lt;/script&gt;
2. Create a directory within your project called "src/com/phonegap/plugins/analytics" and copy src/com/phonegap/plugins/analytics/GoogleAnalyticsTracker.java into it.
3. Add the following activity to your AndroidManifest.xml file. It should be added inside the &lt;application&gt; tag.
&lt;activity android:name="com.phonegap.DroidGap" android:label="@string/app_name"&gt;<br/>
&lt;intent-filter&gt;<br/>
&lt;/intent-filter&gt;<br/>
&lt;/activity&gt;
4. Copy "lib/libGoogleAnalytics.jar" into the libs directory within your project. You will also need to right click on this file in eclipse and add the jar to the build path.
5. In your res/xml/plugins.xml file add the following line:
<plugin name="GoogleAnalyticsTracker" value="com.phonegap.plugins.analytics.GoogleAnalyticsTracker" />
## Using the plugin ##
The plugin creates the object `window.plugins.analytics`. To use, call one of the following, available methods:
<pre>
/**
* Initialize Google Analytics configuration
*
* @param accountId The Google Analytics account id
* @param successCallback The success callback
* @param failureCallback The error callback
*/
start(accountId, successCallback, failureCallback);
</pre>
Sample use:
window.plugins.analytics.start("Your-Account-ID-Here", function(){alert("Start: success");}, function(){alert("Start: failure");});
<pre>
/**
* Track a page view on Google Analytics
* @param key The name of the tracked item (can be a url or some logical name).
* The key name will be presented in Google Analytics report.
* @param successCallback The success callback
* @param failureCallback The error callback
*/
trackPageView(key, successCallback, failureCallback);
</pre>
Sample use:
window.plugins.analytics.trackPageView("page1.html", function(){alert("Track: success");}, function(){alert("Track: failure");});
<pre>
/**
* Track an event on Google Analytics
* @param category The name that you supply as a way to group objects that you want to track
* @param action The name the type of event or interaction you want to track for a particular web object
* @param label Provides additional information for events that you want to track (optional)
* @param value Assign a numerical value to a tracked page object (optional)
* @param successCallback The success callback
* @param failureCallback The error callback
*/
trackEvent(category, action, label, value, successCallback, failureCallback);
</pre>
Sample use:
window.plugins.analytics.trackPageView("category", "action", "event", 1, function(){alert("Track: success");}, function(){alert("Track: failure");});
Please keep in mind that these methods, as in any other plugin, are ready to be invoked only after '[deviceready](http://docs.phonegap.com/phonegap_events_events.md.html#deviceready)' event has been fired
## RELEASE NOTES ##
### AUG, 10, 2011 ###
* Added event tracking
### Jul 24, 2011 ###
* Initial release
## BUGS AND CONTRIBUTIONS ##
## LICENSE ##
PhoneGap is available under *either* the terms of the modified BSD license *or* the
MIT License (2008). As a recipient of PhonegGap, you may choose which
license to receive this code under (except as noted in per-module LICENSE
files). Some modules may not be the copyright of Nitobi. These
modules contain explicit declarations of copyright in both the LICENSE files in
the directories in which they reside and in the code itself. No external
contributions are allowed under licenses which are fundamentally incompatible
with the MIT or BSD licenses that PhoneGap is distributed under.
The text of the MIT and BSD licenses is reproduced below.
---
### The "New" BSD License
Copyright (c) 2005-2010, Nitobi Software Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of Phonegap/Nitobi nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---
### The MIT License
Copyright (c) <2010> <Nitobi Software Inc., et. al., >
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
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.
---
### libGoogleAnalytics.jar
The libGoogleAnalytics.jar is distributed under Apache License, Version 2.0.
License URL: http://www.apache.org/licenses/LICENSE-2.0
libGoogleAnalytics.jar URL: http://code.google.com/p/android-scripting/source/browse/android/AndroidScriptingEnvironment/libs/libGoogleAnalytics.jar?r=41b40b84919bdf461784fd86e6ae464697d2abea

View File

@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<plugin
id = "http://phonegap.com/plugins/Analytics"
version = "1.0"
platform = "Android"
min = "1.6"
max = "">
<name short="Analytics 1.0">
Analytics plugin allows you to track page views using Google Analytics framework.
</name>
<description>
The analytics client allows you to send page views to Google Analytics server.
A simple use case would be:
- Initialize Analytics object with the appropriate Google Analytics account.
- Send page views upon user navigation.
- Send event data upon user interaction.
</description>
<author href="http://www.worklight.com/" email="asafy@worklight.com">Asaf Yishai</author>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<license>
PhoneGap is available under *either* the terms of the modified BSD license *or* the
MIT License (2008). As a recipient of PhonegGap, you may choose which
license to receive this code under (except as noted in per-module LICENSE
files). Some modules may not be the copyright of Nitobi. These
modules contain explicit declarations of copyright in both the LICENSE files in
the directories in which they reside and in the code itself. No external
contributions are allowed under licenses which are fundamentally incompatible
with the MIT or BSD licenses that PhoneGap is distributed under.
The libGoogleAnalytics.jar is distributed under Apache License, Version 2.0.
</license>
</plugin>

View File

@@ -1,53 +0,0 @@
Analytics
==========
Analytics is an object that allows you to track page views using Google Analytics framework.
Properties
----------
N/A
Methods
-------
- start: Initialize Google Analytics with the appropriate Google Analytics account.
- trackPageView: Track a page view on Google Analytics.
Supported Platforms
-------------------
- Android
Quick Example
------------------------------
var onStartSuccess = function() {
alert("Google Analytics has started successfully");
}
var onStartFailure = function() {
alert("Google Analytics failed to start");
}
var onTrackSuccess = function() {
alert("A page view has been successfully sent to Google Analytics.");
}
var onTrackFailure = function() {
alert("A page view has failed to be submitted to Google Analytics");
}
var onEventSuccess = function() {
alert("An event has been successfully sent to Google Analytics.");
}
var onEventFailure = function() {
alert("An event has failed to be submitted to Google Analytics");
}
var myGoogleAnalyticsAccountId = "Your-Account-ID-Here"; // Get your account id from http://www.google.com/analytics/
window.plugins.analytics.start(myGoogleAnalyticsAccountId, onStartSuccess, onStartFailure);
window.plugins.analytics.trackPageView("page1.html", onTrackSuccess, onTrackFailure);
window.plugins.analytics.trackEvent("category", "action", "event", 1, onEventSuccess, onEventFailure);

View File

@@ -1,3 +0,0 @@
lib/libGoogleAnalytics.jar
src/com/phonegap/plugins/analytics/GoogleAnalyticsTracker.java
www/analytics.js

View File

@@ -1,83 +0,0 @@
/*
* PhoneGap is available under *either* the terms of the modified BSD license *or* the
* MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
*
* Copyright (c) 2006-2011 Worklight, Ltd.
*/
package com.phonegap.plugins.analytics;
import org.json.JSONArray;
import org.json.JSONException;
import android.util.Log;
import com.phonegap.api.Plugin;
import com.phonegap.api.PluginResult;
import com.phonegap.api.PluginResult.Status;
public class GoogleAnalyticsTracker extends Plugin {
public static final String START = "start";
public static final String TRACK_PAGE_VIEW = "trackPageView";
public static final String TRACK_EVENT = "trackEvent";
public static final String SET_CUSTOM_VARIABLE = "setCustomVariable";
public static final int DISPATCH_INTERVAL = 20;
private com.google.android.apps.analytics.GoogleAnalyticsTracker tracker;
public GoogleAnalyticsTracker() {
tracker = com.google.android.apps.analytics.GoogleAnalyticsTracker.getInstance();
}
@Override
public PluginResult execute(String action, JSONArray data, String callbackId) {
PluginResult result = null;
if (START.equals(action)) {
try {
start(data.getString(0));
result = new PluginResult(Status.OK);
} catch (JSONException e) {
result = new PluginResult(Status.JSON_EXCEPTION);
}
} else if (TRACK_PAGE_VIEW.equals(action)) {
try {
trackPageView(data.getString(0));
result = new PluginResult(Status.OK);
} catch (JSONException e) {
result = new PluginResult(Status.JSON_EXCEPTION);
}
} else if (TRACK_EVENT.equals(action)) {
try {
trackEvent(data.getString(0), data.getString(1), data.getString(2), data.getInt(3));
result = new PluginResult(Status.OK);
} catch (JSONException e) {
result = new PluginResult(Status.JSON_EXCEPTION);
}
} else if (SET_CUSTOM_VARIABLE.equals(action)){
try {
setCustomVar(data.getInt(0), data.getString(1), data.getString(2), data.getInt(3));
} catch (JSONException e) {
result = new PluginResult(Status.JSON_EXCEPTION);
}
} else {
result = new PluginResult(Status.INVALID_ACTION);
}
return result;
}
private void start(String accountId) {
tracker.start(accountId, DISPATCH_INTERVAL, this.ctx);
}
private void trackPageView(String key) {
tracker.trackPageView(key);
}
private void trackEvent(String category, String action, String label, int value){
tracker.trackEvent(category, action, label, value);
}
private void setCustomVar(int index, String label, String value, int scope) {
tracker.setCustomVar(index, label, value, scope);
}
}

View File

@@ -1,95 +0,0 @@
/*
* PhoneGap is available under *either* the terms of the modified BSD license *or* the
* MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
*
* Copyright (c) 2006-2011 Worklight, Ltd.
*/
/**
* Constructor
*/
function Analytics() {
}
/**
* Initialize Google Analytics configuration
*
* @param accountId The Google Analytics account id
* @param successCallback The success callback
* @param failureCallback The error callback
*/
Analytics.prototype.start = function(accountId, successCallback, failureCallback) {
return PhoneGap.exec(
successCallback,
failureCallback,
'GoogleAnalyticsTracker',
'start',
[accountId]);
};
/**
* Track a page view on Google Analytics
* @param key The name of the tracked item (can be a url or some logical name).
* The key name will be presented in Google Analytics report.
* @param successCallback The success callback
* @param failureCallback The error callback
*/
Analytics.prototype.trackPageView = function(key, successCallback, failureCallback) {
return PhoneGap.exec(
successCallback,
failureCallback,
'GoogleAnalyticsTracker',
'trackPageView',
[key]);
};
/**
* Track an event on Google Analytics
* @param category The name that you supply as a way to group objects that you want to track
* @param action The name the type of event or interaction you want to track for a particular web object
* @param label Provides additional information for events that you want to track (optional)
* @param value Assign a numerical value to a tracked page object (optional)
* @param successCallback The success callback
* @param failureCallback The error callback
*/
Analytics.prototype.trackEvent = function(category, action, label, value, successCallback, failureCallback){
return PhoneGap.exec(
successCallback,
failureCallback,
'GoogleAnalyticsTracker',
'trackEvent',
[
category,
action,
typeof label === "undefined" ? "" : label,
(isNaN(parseInt(value,10))) ? 0 : parseInt(value, 10)
]);
};
Analytics.prototype.setCustomVar = function(index, label, value, scope, successCallback, failureCallback){
return PhoneGap.exec(
successCallback,
failureCallback,
'GoogleAnalyticsTracker',
'setCustomVariable',
[
(isNaN(parseInt(index,10))) ? 0 : parseInt(index, 10),
label,
value,
(isNaN(parseInt(scope,10))) ? 0 : parseInt(scope, 10)
]);
};
/**
* Load Analytics
*/
PhoneGap.addConstructor(function() {
PhoneGap.addPlugin('analytics', new Analytics());
// @deprecated: No longer needed in PhoneGap 1.0. Uncomment the addService code for earlier
// PhoneGap releases.
// PluginManager.addService("GoogleAnalyticsTracker", "com.phonegap.plugins.analytics.GoogleAnalyticsTracker");
});

View File

@@ -1,62 +0,0 @@
libGoogleAnalytics.jar is distributed under Apache License, Version 2.0.
The text of the Apache License, Version 2.0 licenses is reproduced below.
----------------------------------------------
Apache License, Version 2.0
FoundationProjectsPeopleGet InvolvedDownloadSupport ApacheHome » Licenses
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

View File

@@ -1,64 +0,0 @@
PhoneGap is available under *either* the terms of the modified BSD license *or* the
MIT License (2008). As a recipient of PhonegGap, you may choose which
license to receive this code under (except as noted in per-module LICENSE
files). Some modules may not be the copyright of Nitobi. These
modules contain explicit declarations of copyright in both the LICENSE files in
the directories in which they reside and in the code itself. No external
contributions are allowed under licenses which are fundamentally incompatible
with the MIT or BSD licenses that PhoneGap is distributed under.
The text of the MIT and BSD licenses is reproduced below.
-------------------------------------------------------------------------------
The "New" BSD License:
**********************
Copyright (c) 2005-2010, Nitobi Software Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of Phonegap/Nitobi nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------------------
The MIT License
*****************
Copyright (c) <2010> <Nitobi Software Inc., et. al., >
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
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.

View File

@@ -1,211 +0,0 @@
# Analytics plugin for Phonegap #
The analytics client allows you to send page views to Google Analytics server.
A simple use case would be:
- Initialize Analytics object with the appropriate Google Analytics account.
- Send page views upon user navigation.
- Send events upon user interaction.
## Adding the Plugin to your project ##
Using this plugin requires [PhoneGap Cordova library for Android](http://phonegap.com/download) version 1.9 or above.
1. To install the plugin, move www/analytics.js to your project's www folder and include a reference to it in your html file after cordova.js.
&lt;script type="text/javascript" charset="utf-8" src="cordova.js"&gt;&lt;/script&gt;<br/>
&lt;script type="text/javascript" charset="utf-8" src="analytics.js"&gt;&lt;/script&gt;
2. Create a directory within your project called "src/com/phonegap/plugins/analytics" and copy src/com/phonegap/plugins/analytics/GoogleAnalyticsTracker.java into it.
3. Add the following activity to your AndroidManifest.xml file if it not already there. It should be added inside the &lt;application&gt; tag.
&lt;activity android:name="com.phonegap.DroidGap" android:label="@string/app_name"&gt;<br/>
&lt;intent-filter&gt;<br/>
&lt;/intent-filter&gt;<br/>
&lt;/activity&gt;
4. Download [GoogleAnalytics](https://developers.google.com/analytics/devguides/collection/android/resources) library (tested with 1.4.2) and copy "lib/libGoogleAnalytics.jar" into the libs directory within your project. You will also need to right click on this file in eclipse and add the jar to the build path.
5. In your res/xml/config.xml file add the following line:
&lt;plugin name=&quot;GoogleAnalyticsTracker&quot; value=&quot;com.phonegap.plugins.analytics.GoogleAnalyticsTracker&quot; /&gt;
## Using the plugin ##
The plugin creates the object `window.plugins.analytics`. To use, call one of the following, available methods:
<pre>
/**
* Initialize Google Analytics configuration
*
* @param accountId The Google Analytics account id
* @param successCallback The success callback
* @param failureCallback The error callback
*/
start(accountId, successCallback, failureCallback);
</pre>
Sample use:
window.plugins.analytics.start("Your-Account-ID-Here", function(){alert("Start: success");}, function(){alert("Start: failure");});
<pre>
/**
* Track a page view on Google Analytics
* @param key The name of the tracked item (can be a url or some logical name).
* The key name will be presented in Google Analytics report.
* @param successCallback The success callback
* @param failureCallback The error callback
*/
trackPageView(key, successCallback, failureCallback);
</pre>
Sample use:
window.plugins.analytics.trackPageView("page1.html", function(){alert("Track: success");}, function(){alert("Track: failure");});
<pre>
/**
* Track an event on Google Analytics
* @param category The name that you supply as a way to group objects that you want to track
* @param action The name the type of event or interaction you want to track for a particular web object
* @param label Provides additional information for events that you want to track (optional)
* @param value Assign a numerical value to a tracked page object (optional)
* @param successCallback The success callback
* @param failureCallback The error callback
*/
trackEvent(category, action, label, value, successCallback, failureCallback);
</pre>
Sample use:
window.plugins.analytics.trackEvent("category", "action", "event", 1, function(){alert("Track: success");}, function(){alert("Track: failure");});
<pre>
/**
* Set a custom variable on Google Analytics
* @param index The slot for the custom variable
* @param label The name for the custom variable
* @param value The value for the custom variable
* @param scope The scope for the custom variable (optional)
* @param successCallback The success callback
* @param failureCallback The error callback
*/
setCustomVar(index, label, value, scope, successCallback, failureCallback);
</pre>
Sample use:
window.plugins.analytics.setCustomVar(1, "type", "android", null, function(){alert("SetVar: success");}, function(){alert("SetVar: failure");});
Please keep in mind that these methods, as in any other plugin, are ready to be invoked only after '[deviceready](http://docs.phonegap.com/phonegap_events_events.md.html#deviceready)' event has been fired
Good practice will be manual dispatch and stop session. Add this code to your main activity:
<pre>
@Override
public void onDestroy()
{
super.onDestroy();
GoogleAnalyticsTracker tracker = com.google.android.apps.analytics.GoogleAnalyticsTracker.getInstance();
tracker.dispatch();
tracker.stopSession();
}
</pre>
## RELEASE NOTES ##
### AUG, 14, 2012 ###
* Added suppport for Cordova 1.9 and above
### AUG, 10, 2011 ###
* Added event tracking
### Jul 24, 2011 ###
* Initial release
## BUGS AND CONTRIBUTIONS ##
## LICENSE ##
PhoneGap is available under *either* the terms of the modified BSD license *or* the
MIT License (2008). As a recipient of PhonegGap, you may choose which
license to receive this code under (except as noted in per-module LICENSE
files). Some modules may not be the copyright of Nitobi. These
modules contain explicit declarations of copyright in both the LICENSE files in
the directories in which they reside and in the code itself. No external
contributions are allowed under licenses which are fundamentally incompatible
with the MIT or BSD licenses that PhoneGap is distributed under.
The text of the MIT and BSD licenses is reproduced below.
---
### The "New" BSD License
Copyright (c) 2005-2010, Nitobi Software Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of Phonegap/Nitobi nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---
### The MIT License
Copyright (c) <2010> <Nitobi Software Inc., et. al., >
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
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.
---
### libGoogleAnalytics.jar
The libGoogleAnalytics.jar is distributed under Apache License, Version 2.0.
License URL: http://www.apache.org/licenses/LICENSE-2.0
libGoogleAnalytics.jar URL: http://code.google.com/p/android-scripting/source/browse/android/AndroidScriptingEnvironment/libs/libGoogleAnalytics.jar?r=41b40b84919bdf461784fd86e6ae464697d2abea

View File

@@ -1,41 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<plugin
id = "http://phonegap.com/plugins/Analytics"
version = "1.0"
platform = "Android"
min = "1.9"
max = "">
<name short="Analytics 1.0">
Analytics plugin allows you to track page views using Google Analytics framework.
</name>
<description>
The analytics client allows you to send page views to Google Analytics server.
A simple use case would be:
- Initialize Analytics object with the appropriate Google Analytics account.
- Send page views upon user navigation.
- Send event data upon user interaction.
</description>
<author href="http://www.worklight.com/" email="asafy@worklight.com">Asaf Yishai</author>
<author href="http://broderix.blogspot.com/" email="brody.broderix@gmail.com">Kirill Danilov</author>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<license>
PhoneGap is available under *either* the terms of the modified BSD license *or* the
MIT License (2008). As a recipient of PhonegGap, you may choose which
license to receive this code under (except as noted in per-module LICENSE
files). Some modules may not be the copyright of Nitobi. These
modules contain explicit declarations of copyright in both the LICENSE files in
the directories in which they reside and in the code itself. No external
contributions are allowed under licenses which are fundamentally incompatible
with the MIT or BSD licenses that PhoneGap is distributed under.
The libGoogleAnalytics.jar is distributed under Apache License, Version 2.0.
</license>
</plugin>

View File

@@ -1,53 +0,0 @@
Analytics
==========
Analytics is an object that allows you to track page views using Google Analytics framework.
Properties
----------
N/A
Methods
-------
- start: Initialize Google Analytics with the appropriate Google Analytics account.
- trackPageView: Track a page view on Google Analytics.
Supported Platforms
-------------------
- Android
Quick Example
------------------------------
var onStartSuccess = function() {
alert("Google Analytics has started successfully");
}
var onStartFailure = function() {
alert("Google Analytics failed to start");
}
var onTrackSuccess = function() {
alert("A page view has been successfully sent to Google Analytics.");
}
var onTrackFailure = function() {
alert("A page view has failed to be submitted to Google Analytics");
}
var onEventSuccess = function() {
alert("An event has been successfully sent to Google Analytics.");
}
var onEventFailure = function() {
alert("An event has failed to be submitted to Google Analytics");
}
var myGoogleAnalyticsAccountId = "Your-Account-ID-Here"; // Get your account id from http://www.google.com/analytics/
window.plugins.analytics.start(myGoogleAnalyticsAccountId, onStartSuccess, onStartFailure);
window.plugins.analytics.trackPageView("page1.html", onTrackSuccess, onTrackFailure);
window.plugins.analytics.trackEvent("category", "action", "event", 1, onEventSuccess, onEventFailure);

View File

@@ -1,3 +0,0 @@
lib/libGoogleAnalytics.jar
src/com/phonegap/plugins/analytics/GoogleAnalyticsTracker.java
www/analytics.js

View File

@@ -1,84 +0,0 @@
/*
* PhoneGap is available under *either* the terms of the modified BSD license *or* the
* MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
*
* Copyright (c) 2006-2011 Worklight, Ltd.
*/
package com.phonegap.plugins.analytics;
import org.apache.cordova.api.Plugin;
import org.apache.cordova.api.PluginResult;
import org.apache.cordova.api.PluginResult.Status;
import org.json.JSONArray;
import org.json.JSONException;
import android.util.Log;
public class GoogleAnalyticsTracker extends Plugin {
public static final String START = "start";
public static final String TRACK_PAGE_VIEW = "trackPageView";
public static final String TRACK_EVENT = "trackEvent";
public static final String SET_CUSTOM_VARIABLE = "setCustomVariable";
public static final int DISPATCH_INTERVAL = 20;
private com.google.android.apps.analytics.GoogleAnalyticsTracker tracker;
public GoogleAnalyticsTracker() {
tracker = com.google.android.apps.analytics.GoogleAnalyticsTracker.getInstance();
}
@Override
public PluginResult execute(String action, JSONArray data, String callbackId) {
PluginResult result = null;
if (START.equals(action)) {
try {
start(data.getString(0));
result = new PluginResult(Status.OK);
} catch (JSONException e) {
result = new PluginResult(Status.JSON_EXCEPTION);
}
} else if (TRACK_PAGE_VIEW.equals(action)) {
try {
trackPageView(data.getString(0));
result = new PluginResult(Status.OK);
} catch (JSONException e) {
result = new PluginResult(Status.JSON_EXCEPTION);
}
} else if (TRACK_EVENT.equals(action)) {
try {
trackEvent(data.getString(0), data.getString(1), data.getString(2), data.getInt(3));
result = new PluginResult(Status.OK);
} catch (JSONException e) {
result = new PluginResult(Status.JSON_EXCEPTION);
}
} else if (SET_CUSTOM_VARIABLE.equals(action)){
try {
setCustomVar(data.getInt(0), data.getString(1), data.getString(2), data.getInt(3));
result = new PluginResult(Status.OK);
} catch (JSONException e) {
result = new PluginResult(Status.JSON_EXCEPTION);
}
} else {
result = new PluginResult(Status.INVALID_ACTION);
}
return result;
}
private void start(String accountId) {
tracker.startNewSession(accountId, DISPATCH_INTERVAL, this.cordova.getActivity());
}
private void trackPageView(String key) {
tracker.trackPageView(key);
}
private void trackEvent(String category, String action, String label, int value){
tracker.trackEvent(category, action, label, value);
}
private void setCustomVar(int index, String label, String value, int scope) {
if(scope > 0) tracker.setCustomVar(index, label, value, scope);
else tracker.setCustomVar(index, label, value);
}
}

View File

@@ -1,106 +0,0 @@
/*
* PhoneGap is available under *either* the terms of the modified BSD license *or* the
* MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
*
* Copyright (c) 2006-2011 Worklight, Ltd.
*/
/**
* Constructor
*/
var Analytics = function () {};
/**
* Initialize Google Analytics configuration
*
* @param accountId The Google Analytics account id
* @param successCallback The success callback
* @param failureCallback The error callback
*/
Analytics.prototype.start = function(accountId, successCallback, failureCallback) {
return cordova.exec(
successCallback,
failureCallback,
'GoogleAnalyticsTracker',
'start',
[accountId]);
};
/**
* Track a page view on Google Analytics
* @param key The name of the tracked item (can be a url or some logical name).
* The key name will be presented in Google Analytics report.
* @param successCallback The success callback
* @param failureCallback The error callback
*/
Analytics.prototype.trackPageView = function(key, successCallback, failureCallback) {
return cordova.exec(
successCallback,
failureCallback,
'GoogleAnalyticsTracker',
'trackPageView',
[key]);
};
/**
* Track an event on Google Analytics
* @param category The name that you supply as a way to group objects that you want to track
* @param action The name the type of event or interaction you want to track for a particular web object
* @param label Provides additional information for events that you want to track (optional)
* @param value Assign a numerical value to a tracked page object (optional)
* @param successCallback The success callback
* @param failureCallback The error callback
*/
Analytics.prototype.trackEvent = function(category, action, label, value, successCallback, failureCallback){
return cordova.exec(
successCallback,
failureCallback,
'GoogleAnalyticsTracker',
'trackEvent',
[
category,
action,
typeof label === "undefined" ? "" : label,
(isNaN(parseInt(value,10))) ? 0 : parseInt(value, 10)
]);
};
/**
* Set a custom variable on Google Analytics
* @param index The slot for the custom variable
* @param label The name for the custom variable
* @param value The value for the custom variable
* @param scope The scope for the custom variable (optional)
* @param successCallback The success callback
* @param failureCallback The error callback
*/
Analytics.prototype.setCustomVar = function(index, label, value, scope, successCallback, failureCallback){
return cordova.exec(
successCallback,
failureCallback,
'GoogleAnalyticsTracker',
'setCustomVariable',
[
(isNaN(parseInt(index,10))) ? 0 : parseInt(index, 10),
label,
value,
(isNaN(parseInt(scope,10))) ? 0 : parseInt(scope, 10)
]);
};
/**
* Load Analytics
*/
if(!window.plugins) {
window.plugins = {};
}
if (!window.plugins.analytics) {
window.plugins.analytics = new Analytics();
}

View File

@@ -1,44 +0,0 @@
/**
* AppBlade.js
*
* Phonegap AppBlade Instance plugin
* Copyright (c) AppBlade 2012
*
*/
// --------------------------------------------------------
var AppBlade = function(){};
// --------------------------------------------------------
AppBlade.prototype.setupAppBlade = function(project, token, secret, timestamp) {
cordova.exec(null, null, "AppBlade", "setupAppBlade", [project, token, secret, timestamp]);
};
AppBlade.prototype.catchAndReportCrashes = function() {
// Automatically set with Register on Android
//cordova.exec("AppBlade.catchAndReportCrashes");
};
AppBlade.prototype.checkAuthentication = function() {
console.log("Checking authentication");
cordova.exec(null, null, "AppBlade", "checkAuthentication", []);
};
AppBlade.prototype.allowFeedbackReporting = function() {
// Not supported yet
//cordova.exec("AppBlade.allowFeedbackReporting");
};
// --------------------------------------------------------
cordova.addConstructor(function() {
if (!window.Cordova) {
window.Cordova = cordova;
};
if(!window.plugins) window.plugins = {};
window.plugins.appBlade = new AppBlade();
});

View File

@@ -1,57 +0,0 @@
/**
*
*/
package com.phonegap.helloworld;
import org.apache.cordova.api.PluginResult;
import org.json.JSONArray;
import android.util.Log;
import com.phonegap.api.Plugin;
import android.app.Activity;
import com.appblade.framework.AppBlade;
/**
* @author micheletitolo
*
*/
public class AppBladePlugin extends Plugin {
public static final String SETUP="setupAppBlade";
public static final String CHECKAPPROVAL="checkAuthentication";
/* (non-Javadoc)
* @see org.apache.cordova.api.Plugin#execute(java.lang.String, org.json.JSONArray, java.lang.String)
*/
@Override
public PluginResult execute(String action, JSONArray data, String callbackId) {
PluginResult result = null;
if (SETUP.equals(action)) {
String token = data.optString(2);
String secret = data.optString(1);
String uuid = data.optString(0);
String issuance = data.optString(3);
AppBlade.register(this.ctx.getApplicationContext(), token, secret, uuid, issuance);
result = new PluginResult(PluginResult.Status.OK);
}
else if (CHECKAPPROVAL.equals(action))
{
// PhoneGap runs on its own thread. So we need one to display an alert and do our UI on.
this.ctx.runOnUiThread(new Runnable() {
public void run() {
AppBlade.authorize((Activity) AppBladePlugin.this.ctx);
}
});
result = new PluginResult(PluginResult.Status.OK);
}
else {
result = new PluginResult(PluginResult.Status.INVALID_ACTION);
}
return result;
}
}

View File

@@ -1,19 +0,0 @@
AppBladeSDK PhoneGap Plugin
===================
Plugin for PhoneGap that uses the AppBlade SDK.
##Installation - Android
1. Copy `AppBlade.js` into your `www` directory.
2. Add `AppBladePlugin.java` to your project.
3. Follow directions for [adding plugins to your Android project](http://wiki.phonegap.com/w/page/43708611/How%20to%20Install%20a%20PhoneGap%20Plugin%20for%20Android).
3. Follow directions for [adding the AppBlade SDK to your project](http://github.com/AppBlade/SDK), but do not do the last 2 steps where you edit your main activity file.
3. In your `index.html`, register for the `"deviceready"` eventListener, and call the setup method with your SDK keys in this order: project, token, secret, issued timestamp.
See the Example project included for examples using the other functions of the SDK.
##Resources:
###[AppBlade.com](https://appblade.com/)
###[License and Terms](https://appblade.com/terms_of_use)

View File

@@ -1,2 +0,0 @@
# Moved to #
https://github.com/macdonst/AppPreferences

View File

@@ -1,6 +0,0 @@
Appback Phonegap/Cordova Plugin
===============================
This plugin allows for easy use of the Appback.com Backend as a Service API in mobile applications.
This plugin is available at [https://github.com/appback/appback-phonegap-plugin](https://github.com/appback/appback-phonegap-plugin)

View File

@@ -1,30 +0,0 @@
Arise PhoneGap plugin
-----------------------
Maintained by Guillaume Charhon - Arise.io
The repository for this plugin is located at https://github.com/poiuytrez/ArisePhoneGap
This plugin let you use the Arise service through phonegap to perform A/B testing.
MIT License
----------------
Copyright (c) 2013 Guillaume Charhon - Arise.io
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
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.

View File

@@ -1 +0,0 @@
# Asset2SD plugin for Phonegap #

View File

@@ -1,6 +0,0 @@
# Augmented Reality meets PhoneGap - Wikitude
##This plugin moved to another git, please visit [Wikitude's PhoneGap Git](https://github.com/Wikitude/wikitude-phonegap "AR Plugin PhoneGap")
[https://github.com/Wikitude/wikitude-phonegap](https://github.com/Wikitude/wikitude-phonegap "AR Plugin PhoneGap")

View File

@@ -1,6 +0,0 @@
Avocarrot Phonegap Plugin
===============
Monetize and engage your app users by transforming ads into engaging and native rewards for in-app achievements.
Check out the [documentation](http://www.avocarrot.com/docs/#/phonegap) and get started with Avocarrot in minutes.

View File

@@ -1,78 +0,0 @@
package com.yournamespace.yourappname;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.json.JSONException;
import org.json.JSONObject;
import android.util.Log;
import com.red_folder.phonegap.plugin.backgroundservice.BackgroundService;
public class MyService extends BackgroundService {
private final static String TAG = MyService.class.getSimpleName();
private String mHelloTo = "World";
@Override
protected JSONObject doWork() {
JSONObject result = new JSONObject();
try {
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String now = df.format(new Date(System.currentTimeMillis()));
String msg = "Hello " + this.mHelloTo + " - its currently " + now;
result.put("Message", msg);
Log.d(TAG, msg);
} catch (JSONException e) {
}
return result;
}
@Override
protected JSONObject getConfig() {
JSONObject result = new JSONObject();
try {
result.put("HelloTo", this.mHelloTo);
} catch (JSONException e) {
}
return result;
}
@Override
protected void setConfig(JSONObject config) {
try {
if (config.has("HelloTo"))
this.mHelloTo = config.getString("HelloTo");
} catch (JSONException e) {
}
}
@Override
protected JSONObject initialiseLatestResult() {
// TODO Auto-generated method stub
return null;
}
@Override
protected void onTimerEnabled() {
// TODO Auto-generated method stub
}
@Override
protected void onTimerDisabled() {
// TODO Auto-generated method stub
}
}

View File

@@ -1,73 +0,0 @@
# Background Service Plugin for Phonegap #
A plugin (and framework code) that allows the development and operation of an Android Background Service.
The example MyService Background Service will write a Hello message to the LogCat every minute. The MyService is designed as sample code.
## Adding the plugin to your project ##
Copy the files to the following locations:
* libs\backgroundserviceplugin.jar
* src\com\yournamespace\yourappname\MyService.java
* assets\www\backgroundService.js
* assets\www\myService.js
* assets\www\index.html
Add the following to res\xml\plugins.xml
```
<plugin name="BackgroundServicePlugin" value="com.red_folder.phonegap.plugin.backgroundservice.BackgroundServicePlugin"/>
```
Add the following to AndroidManifest.xml
```
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- To be added within Application nde -->
<service android:name="com.yournamespace.yourappname.MyService">
<intent-filter>
<action android:name="com.yournamespace.yourappname.MyService"/>
</intent-filter>
</service>
<receiver android:name="com.red_folder.phonegap.plugin.backgroundservice.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
</intent-filter>
</receiver>
```
## Change Log ##
* 14th November 2012 - Fix for service not stopping if the app has been closed then re-opened
## Further Information ##
Further information on the plugin can be found at:
* http://red-folder.blogspot.co.uk/2012/09/phonegap-android-background-service.html
* http://red-folder.blogspot.com/2012/09/phonegap-android-background-service_11.html
The below is a tutorial to create your own Twitter service:
* http://red-folder.blogspot.com/2012/09/phonegap-service-tutorial-part-1.html
* http://red-folder.blogspot.com/2012/09/phonegap-service-tutorial-part-2.html
* http://red-folder.blogspot.com/2012/09/phonegap-service-tutorial-part-3.html
Please let me know your thoughts and comments.
## Licence ##
The MIT License
Copyright (c) 2012 Red Folder Consultancy Ltd
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 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.

View File

@@ -1,171 +0,0 @@
/*
* Copyright 2012 Red Folder Consultancy Ltd
*
* Licensed 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.
*/
/*
* Constructor
*/
function BackgroundService(serviceName) {
var ServiceName = serviceName;
this.getServiceName = function() {
return ServiceName;
};
};
/**
* All methods attempt to return the following data in both the success and failure callbacks
* Front end development should take into account any all or all of these values may be null
*
* Following returned in the JSONObject:
* Boolean Success - was the call a success
* int ErrorCode - Error code if an error occurred, else will be zero
* String ErrorMessage - Text representation of the error code
* Boolean ServiceRunning - True if the Service is running
* Boolean TimerEnabled - True if the Timer is enabled
* Boolean RegisteredForBootStart - True if the Service is registered for boot start
* JSONObject Configuration - A JSONObject of the configuration of the service (contents dependant on the service)
* JSONObject LastestResult - A JSONObject of the last result of the service (contents dependant on the service)
*/
/**
* Starts the Service
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.startService = function(successCallback, failureCallback) {
return cordova.exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'startService',
[this.getServiceName()]);
};
/**
* Stops the Service
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.stopService = function(successCallback, failureCallback) {
return cordova.exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'stopService',
[this.getServiceName()]);
};
/**
* Enables the Service Timer
*
* @param milliseconds The milliseconds used for the timer
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.enableTimer = function(milliseconds, successCallback, failureCallback) {
return cordova.exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'enableTimer',
[this.getServiceName(), milliseconds]);
};
/**
* Disabled the Service Timer
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.disableTimer = function(successCallback, failureCallback) {
return cordova.exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'disableTimer',
[this.getServiceName()]);
};
/**
* Sets the configuration for the service
*
* @oaran configuration JSONObject to be sent to the service
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.setConfiguration = function(configuration, successCallback, failureCallback) {
return cordova.exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'setConfiguration',
[this.getServiceName(), configuration]);
};
/**
* Registers the service for Boot Start
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.registerForBootStart = function(successCallback, failureCallback) {
return cordova.exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'registerForBootStart',
[this.getServiceName()]);
};
/**
* Deregisters the service for Boot Start
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.deregisterForBootStart = function(successCallback, failureCallback) {
return cordova.exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'deregisterForBootStart',
[this.getServiceName()]);
};
/**
* Get the current status of the service.
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.isRegisteredForBootStart = function(successCallback, failureCallback) {
return cordova.exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'isRegisteredForBootStart',
[this.getServiceName()]);
};
/**
* Returns the status of the service
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.getStatus = function(successCallback, failureCallback) {
return cordova.exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'getStatus',
[this.getServiceName()]);
};

View File

@@ -1,219 +0,0 @@
<!DOCTYPE HTML>
<!--
/*
* Copyright 2012 Red Folder Consultancy Ltd
*
* Licensed 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>MyService</title>
<script type="text/javascript" charset="utf-8" src="cordova-1.8.1.js"></script>
<script type="text/javascript" src="backgroundService.js"></script>
<script type="text/javascript" src="myService.js"></script>
<script type="text/javascript" >
document.addEventListener('deviceready', function() {
getStatus();
}, true);
function get(name){
if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search))
return decodeURIComponent(name[1]);
}
function handleSuccess(data) {
updateView(data);
}
function handleError(data) {
alert("Error: " + data.ErrorMessage);
alert(JSON.stringify(data));
updateView(data);
}
/*
* Button Handlers
*/
function getStatus() {
window.plugins.myService.getStatus( function(r){handleSuccess(r)},
function(e){handleError(e)});
};
function startService() {
window.plugins.myService.startService( function(r){handleSuccess(r)},
function(e){handleError(e)});
}
function stopService() {
window.plugins.myService.stopService( function(r){handleSuccess(r)},
function(e){handleError(e)});
}
function enableTimer() {
window.plugins.myService.enableTimer( 60000,
function(r){handleSuccess(r)},
function(e){handleError(e)});
}
function disableTimer() {
window.plugins.myService.disableTimer( function(r){handleSuccess(r)},
function(e){handleError(e)});
};
function registerForBootStart() {
window.plugins.myService.registerForBootStart( function(r){handleSuccess(r)},
function(e){handleError(e)});
}
function deregisterForBootStart() {
window.plugins.myService.deregisterForBootStart( function(r){handleSuccess(r)},
function(e){handleError(e)});
}
function setConfig() {
var helloToTxt = document.getElementById("helloToTxt");
var helloToString = helloToTxt.value;
var config = {
"HelloTo" : helloToString
};
window.plugins.myService.setConfiguration( config,
function(r){handleSuccess(r)},
function(e){handleError(e)});
}
/*
* View logic
*/
function updateView(data) {
var serviceBtn = document.getElementById("toggleService");
var timerBtn = document.getElementById("toggleTimer");
var bootBtn = document.getElementById("toggleBoot");
var updateBtn = document.getElementById("updateBtn");
var refreshBtn = document.getElementById("refreshBtn");
var serviceStatus = document.getElementById("serviceStatus");
var timerStatus = document.getElementById("timerStatus");
var bootStatus = document.getElementById("bootStatus");
serviceBtn.disabled = false;
if (data.ServiceRunning) {
serviceStatus.innerHTML = "Running";
serviceBtn.onclick = stopService;
timerBtn.disabled = false;
if (data.TimerEnabled) {
timerStatus.innerHTML = "Enabled";
timerBtn.onclick = disableTimer;
} else {
timerStatus.innerHTML = "Disabled";
timerBtn.onclick = enableTimer;
}
updateBtn.disabled = false;
updateBtn.onclick = setConfig;
refreshBtn.disabled = false;
refreshBtn.onclick = getStatus;
} else {
serviceStatus.innerHTML = "Not running";
serviceBtn.onclick = startService;
timerBtn.disabled = true;
timerEnabled = false;
updateBtn.disabled = true;
refreshBtn.disabled = true;
}
bootBtn.disabled = false;
if (data.RegisteredForBootStart) {
bootStatus.innerHTML = "Registered";
bootBtn.onclick = deregisterForBootStart;
} else {
bootStatus.innerHTML = "Not registered";
bootBtn.onclick = registerForBootStart;
}
if (data.Configuration != null)
{
try {
var helloToTxt = document.getElementById("helloToTxt");
helloToTxt.value = data.Configuration.HelloTo;
} catch (err) {
}
}
if (data.LatestResult != null)
{
try {
var resultMessage = document.getElementById("resultMessage");
resultMessage.innerHTML = data.LatestResult.Message;
} catch (err) {
}
}
}
</script>
</head>
<body>
<h1>MyService</h1>
<table>
<tr>
<th>Service</th>
<td><div id="serviceStatus"></div></td>
<td><input disabled id="toggleService" type="button" value="toggle"/></td>
</tr>
<tr>
<th>Timer</th>
<td><div id="timerStatus"></div></td>
<td><input disabled id="toggleTimer" type="button" value="toggle"/></td>
</tr>
<tr>
<th>Boot</th>
<td><div id="bootStatus"></div></td>
<td><input disabled id="toggleBoot" type="button" value="toggle"/></td>
</tr>
<tr>
<th colspan=3 align="center">Configuration</th>
</tr>
<tr>
<th align="left">Hello To</th>
<td colspan=2 align="center"><input id="helloToTxt" type="Text"/></td>
</tr>
<tr>
<td colspan=3 align="center"><input disabled id="updateBtn" type="button" value="Update Config"/></td>
</tr>
<tr>
<th colspan=3 align="center">Latest Result</th>
</tr>
<tr>
<td colspan=3 align="center"><div id="resultMessage"></div></td>
</tr>
<tr>
<td colspan=3 align="center"><input disabled id="refreshBtn" type="button" value="Refresh"/></td>
</tr>
</table>
</body>
</html>

View File

@@ -1,31 +0,0 @@
/*
* Copyright 2012 Red Folder Consultancy Ltd
*
* Licensed 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.
*/
// ///////////////////
(function(){
// ///////////////////
// get local ref to global PhoneGap/Cordova/cordova object for exec function
var cordovaRef = window.PhoneGap || window.Cordova || window.cordova; // old to new fallbacks
cordovaRef.addConstructor(function() {
cordovaRef.addPlugin("myService", new BackgroundService('com.yournamespace.yourappname.MyService'));
});
// ///////////////////
})();
// ///////////////////

View File

@@ -1,78 +0,0 @@
package com.yournamespace.yourappname;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.json.JSONException;
import org.json.JSONObject;
import android.util.Log;
import com.red_folder.phonegap.plugin.backgroundservice.BackgroundService;
public class MyService extends BackgroundService {
private final static String TAG = MyService.class.getSimpleName();
private String mHelloTo = "World";
@Override
protected JSONObject doWork() {
JSONObject result = new JSONObject();
try {
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String now = df.format(new Date(System.currentTimeMillis()));
String msg = "Hello " + this.mHelloTo + " - its currently " + now;
result.put("Message", msg);
Log.d(TAG, msg);
} catch (JSONException e) {
}
return result;
}
@Override
protected JSONObject getConfig() {
JSONObject result = new JSONObject();
try {
result.put("HelloTo", this.mHelloTo);
} catch (JSONException e) {
}
return result;
}
@Override
protected void setConfig(JSONObject config) {
try {
if (config.has("HelloTo"))
this.mHelloTo = config.getString("HelloTo");
} catch (JSONException e) {
}
}
@Override
protected JSONObject initialiseLatestResult() {
// TODO Auto-generated method stub
return null;
}
@Override
protected void onTimerEnabled() {
// TODO Auto-generated method stub
}
@Override
protected void onTimerDisabled() {
// TODO Auto-generated method stub
}
}

View File

@@ -1,72 +0,0 @@
# Background Service Plugin for Phonegap #
A plugin (and framework code) that allows the development and operation of an Android Background Service.
The example MyService Background Service will write a Hello message to the LogCat every minute. The MyService is designed as sample code.
## Adding the plugin to your project ##
Copy the files to the following locations:
* libs\backgroundserviceplugin-2.0.0.jar
* src\com\yournamespace\yourappname\MyService.java
* assets\www\backgroundService-2.0.0.js
* assets\www\myService-2.0.0.js
* assets\www\index-2.0.0.html
Add the following to res\xml\config.xml
```
<plugin name="BackgroundServicePlugin" value="com.red_folder.phonegap.plugin.backgroundservice.BackgroundServicePlugin"/>
```
Add the following to AndroidManifest.xml
```
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- To be added within Application nde -->
<service android:name="com.yournamespace.yourappname.MyService">
<intent-filter>
<action android:name="com.yournamespace.yourappname.MyService"/>
</intent-filter>
</service>
<receiver android:name="com.red_folder.phonegap.plugin.backgroundservice.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
</intent-filter>
</receiver>
```
## Change Log ##
* 14th November 2012 - Fix for service not stopping if the app has been closed then re-opened
## Further Information ##
Further information on the plugin can be found at:
* http://red-folder.blogspot.co.uk/2012/09/phonegap-android-background-service.html
* http://red-folder.blogspot.com/2012/09/phonegap-android-background-service_11.html
The below is a tutorial to create your own Twitter service:
* http://red-folder.blogspot.com/2012/09/phonegap-service-tutorial-part-1.html
* http://red-folder.blogspot.com/2012/09/phonegap-service-tutorial-part-2.html
* http://red-folder.blogspot.com/2012/09/phonegap-service-tutorial-part-3.html
Please let me know your thoughts and comments.
## Licence ##
The MIT License
Copyright (c) 2012 Red Folder Consultancy Ltd
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 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.

View File

@@ -1,181 +0,0 @@
/*
* Copyright 2012 Red Folder Consultancy Ltd
*
* Licensed 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.
*/
/*
* Constructor
*/
function CreateBackgroundService(serviceName, require, exports, module) {
var exec = require("cordova/exec");
var BackgroundService = function (serviceName) {
var ServiceName = serviceName
this.getServiceName = function() {
return ServiceName;
};
};
var BackgroundServiceError = function (code, message) {
this.code = code || null;
this.message = message || null;
};
/**
* All methods attempt to return the following data in both the success and failure callbacks
* Front end development should take into account any all or all of these values may be null
*
* Following returned in the JSONObject:
* Boolean Success - was the call a success
* int ErrorCode - Error code if an error occurred, else will be zero
* String ErrorMessage - Text representation of the error code
* Boolean ServiceRunning - True if the Service is running
* Boolean TimerEnabled - True if the Timer is enabled
* Boolean RegisteredForBootStart - True if the Service is registered for boot start
* JSONObject Configuration - A JSONObject of the configuration of the service (contents dependant on the service)
* JSONObject LastestResult - A JSONObject of the last result of the service (contents dependant on the service)
*/
/**
* Starts the Service
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.startService = function(successCallback, failureCallback) {
return exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'startService',
[this.getServiceName()]);
};
/**
* Stops the Service
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.stopService = function(successCallback, failureCallback) {
return exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'stopService',
[this.getServiceName()]);
};
/**
* Enables the Service Timer
*
* @param milliseconds The milliseconds used for the timer
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.enableTimer = function(milliseconds, successCallback, failureCallback) {
return exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'enableTimer',
[this.getServiceName(), milliseconds]);
};
/**
* Disabled the Service Timer
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.disableTimer = function(successCallback, failureCallback) {
return exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'disableTimer',
[this.getServiceName()]);
};
/**
* Sets the configuration for the service
*
* @oaran configuration JSONObject to be sent to the service
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.setConfiguration = function(configuration, successCallback, failureCallback) {
return exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'setConfiguration',
[this.getServiceName(), configuration]);
};
/**
* Registers the service for Boot Start
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.registerForBootStart = function(successCallback, failureCallback) {
return exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'registerForBootStart',
[this.getServiceName()]);
};
/**
* Deregisters the service for Boot Start
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.deregisterForBootStart = function(successCallback, failureCallback) {
return exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'deregisterForBootStart',
[this.getServiceName()]);
};
/**
* Get the current status of the service.
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.isRegisteredForBootStart = function(successCallback, failureCallback) {
return exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'isRegisteredForBootStart',
[this.getServiceName()]);
};
/**
* Returns the status of the service
*
* @param successCallback The callback which will be called if the method is successful
* @param failureCallback The callback which will be called if the method encounters an error
*/
BackgroundService.prototype.getStatus = function(successCallback, failureCallback) {
return exec( successCallback,
failureCallback,
'BackgroundServicePlugin',
'getStatus',
[this.getServiceName()]);
};
var backgroundService = new BackgroundService(serviceName);
module.exports = backgroundService;
};

View File

@@ -1,215 +0,0 @@
<!DOCTYPE HTML>
<!--
/*
* Copyright 2012 Red Folder Consultancy Ltd
*
* Licensed 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>MyService</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
<script type="text/javascript" src="backgroundService-2.0.0.js"></script>
<script type="text/javascript" src="myService-2.0.0.js"></script>
<script type="text/javascript" >
var myService = cordova.require('cordova/plugin/myService');
document.addEventListener('deviceready', function() {
getStatus();
}, true);
function handleSuccess(data) {
updateView(data);
}
function handleError(data) {
alert("Error: " + data.ErrorMessage);
alert(JSON.stringify(data));
updateView(data);
}
/*
* Button Handlers
*/
function getStatus() {
myService.getStatus( function(r){handleSuccess(r)},
function(e){handleError(e)});
};
function startService() {
myService.startService( function(r){handleSuccess(r)},
function(e){handleError(e)});
}
function stopService() {
myService.stopService( function(r){handleSuccess(r)},
function(e){handleError(e)});
}
function enableTimer() {
myService.enableTimer( 60000,
function(r){handleSuccess(r)},
function(e){handleError(e)});
}
function disableTimer() {
myService.disableTimer( function(r){handleSuccess(r)},
function(e){handleError(e)});
};
function registerForBootStart() {
myService.registerForBootStart( function(r){handleSuccess(r)},
function(e){handleError(e)});
}
function deregisterForBootStart() {
myService.deregisterForBootStart( function(r){handleSuccess(r)},
function(e){handleError(e)});
}
function setConfig() {
var helloToTxt = document.getElementById("helloToTxt");
var helloToString = helloToTxt.value;
var config = {
"HelloTo" : helloToString
};
myService.setConfiguration( config,
function(r){handleSuccess(r)},
function(e){handleError(e)});
}
/*
* View logic
*/
function updateView(data) {
var serviceBtn = document.getElementById("toggleService");
var timerBtn = document.getElementById("toggleTimer");
var bootBtn = document.getElementById("toggleBoot");
var updateBtn = document.getElementById("updateBtn");
var refreshBtn = document.getElementById("refreshBtn");
var serviceStatus = document.getElementById("serviceStatus");
var timerStatus = document.getElementById("timerStatus");
var bootStatus = document.getElementById("bootStatus");
serviceBtn.disabled = false;
if (data.ServiceRunning) {
serviceStatus.innerHTML = "Running";
serviceBtn.onclick = stopService;
timerBtn.disabled = false;
if (data.TimerEnabled) {
timerStatus.innerHTML = "Enabled";
timerBtn.onclick = disableTimer;
} else {
timerStatus.innerHTML = "Disabled";
timerBtn.onclick = enableTimer;
}
updateBtn.disabled = false;
updateBtn.onclick = setConfig;
refreshBtn.disabled = false;
refreshBtn.onclick = getStatus;
} else {
serviceStatus.innerHTML = "Not running";
serviceBtn.onclick = startService;
timerBtn.disabled = true;
timerEnabled = false;
updateBtn.disabled = true;
refreshBtn.disabled = true;
}
bootBtn.disabled = false;
if (data.RegisteredForBootStart) {
bootStatus.innerHTML = "Registered";
bootBtn.onclick = deregisterForBootStart;
} else {
bootStatus.innerHTML = "Not registered";
bootBtn.onclick = registerForBootStart;
}
if (data.Configuration != null)
{
try {
var helloToTxt = document.getElementById("helloToTxt");
helloToTxt.value = data.Configuration.HelloTo;
} catch (err) {
}
}
if (data.LatestResult != null)
{
try {
var resultMessage = document.getElementById("resultMessage");
resultMessage.innerHTML = data.LatestResult.Message;
} catch (err) {
}
}
}
</script>
</head>
<body>
<h1>MyService</h1>
<table>
<tr>
<th>Service</th>
<td><div id="serviceStatus"></div></td>
<td><input disabled id="toggleService" type="button" value="toggle"/></td>
</tr>
<tr>
<th>Timer</th>
<td><div id="timerStatus"></div></td>
<td><input disabled id="toggleTimer" type="button" value="toggle"/></td>
</tr>
<tr>
<th>Boot</th>
<td><div id="bootStatus"></div></td>
<td><input disabled id="toggleBoot" type="button" value="toggle"/></td>
</tr>
<tr>
<th colspan=3 align="center">Configuration</th>
</tr>
<tr>
<th align="left">Hello To</th>
<td colspan=2 align="center"><input id="helloToTxt" type="Text"/></td>
</tr>
<tr>
<td colspan=3 align="center"><input disabled id="updateBtn" type="button" value="Update Config"/></td>
</tr>
<tr>
<th colspan=3 align="center">Latest Result</th>
</tr>
<tr>
<td colspan=3 align="center"><div id="resultMessage"></div></td>
</tr>
<tr>
<td colspan=3 align="center"><input disabled id="refreshBtn" type="button" value="Refresh"/></td>
</tr>
</table>
</body>
</html>

View File

@@ -1,19 +0,0 @@
/*
* Copyright 2012 Red Folder Consultancy Ltd
*
* Licensed 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.
*/
cordova.define( 'cordova/plugin/myService', function(require, exports, module) {
CreateBackgroundService('com.yournamespace.yourappname.MyService', require, exports, module);
});

View File

@@ -1,25 +0,0 @@
# Background Service Plugin for Phonegap #
A plugin (and framework code) that allows the development and operation of an Android Background Service.
The example MyService Background Service will write a Hello message to the LogCat every minute. The MyService is designed as sample code.
## Repository Location ##
The location for this repository has been moved to https://github.com/Red-Folder/Cordova-Plugin-BackgroundService
This was moved based on the Plugin recommendations here -> http://shazronatadobe.wordpress.com/2012/11/07/cordova-plugins-put-them-in-your-own-repo-2/
## Licence ##
The MIT License
Copyright (c) 2012 Red Folder Consultancy Ltd
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 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.

View File

@@ -1,59 +0,0 @@
/**
* cordova is available under *either* the terms of the modified BSD license *or* the
* MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
*
* Copyright (c) Matt Kane 2010
* Copyright (c) 2011, IBM Corporation
*/
var BarcodeScanner = function() {
};
//-------------------------------------------------------------------
BarcodeScanner.Encode = {
TEXT_TYPE: "TEXT_TYPE",
EMAIL_TYPE: "EMAIL_TYPE",
PHONE_TYPE: "PHONE_TYPE",
SMS_TYPE: "SMS_TYPE",
// CONTACT_TYPE: "CONTACT_TYPE", // TODO: not implemented, requires passing a Bundle class from Javascriopt to Java
// LOCATION_TYPE: "LOCATION_TYPE" // TODO: not implemented, requires passing a Bundle class from Javascriopt to Java
};
//-------------------------------------------------------------------
BarcodeScanner.prototype.scan = function(successCallback, errorCallback) {
if (errorCallback == null) { errorCallback = function() {}}
if (typeof errorCallback != "function") {
console.log("BarcodeScanner.scan failure: failure parameter not a function");
return
}
if (typeof successCallback != "function") {
console.log("BarcodeScanner.scan failure: success callback parameter must be a function");
return
}
cordova.exec(successCallback, errorCallback, 'BarcodeScanner', 'scan', []);
};
//-------------------------------------------------------------------
BarcodeScanner.prototype.encode = function(type, data, successCallback, errorCallback, options) {
if (errorCallback == null) { errorCallback = function() {}}
if (typeof errorCallback != "function") {
console.log("BarcodeScanner.scan failure: failure parameter not a function");
return
}
if (typeof successCallback != "function") {
console.log("BarcodeScanner.scan failure: success callback parameter must be a function");
return
}
cordova.exec(successCallback, errorCallback, 'BarcodeScanner', 'encode', [{"type": type, "data": data, "options": options}]);
};
//-------------------------------------------------------------------
cordova.addConstructor(function() {
cordova.addPlugin('barcodeScanner', new BarcodeScanner());
});

View File

@@ -1,141 +0,0 @@
/**
* PhoneGap is available under *either* the terms of the modified BSD license *or* the
* MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
*
* Copyright (c) Matt Kane 2010
* Copyright (c) 2011, IBM Corporation
*/
package com.phonegap.plugins.barcodescanner;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import org.apache.cordova.api.Plugin;
import org.apache.cordova.api.PluginResult;
/**
* This calls out to the ZXing barcode reader and returns the result.
*/
public class BarcodeScanner extends Plugin {
private static final String TEXT_TYPE = "TEXT_TYPE";
private static final String EMAIL_TYPE = "EMAIL_TYPE";
private static final String PHONE_TYPE = "PHONE_TYPE";
private static final String SMS_TYPE = "SMS_TYPE";
public static final int REQUEST_CODE = 0x0ba7c0de;
public String callback;
/**
* Constructor.
*/
public BarcodeScanner() {
}
/**
* Executes the request and returns PluginResult.
*
* @param action The action to execute.
* @param args JSONArray of arguments for the plugin.
* @param callbackId The callback id used when calling back into JavaScript.
* @return A PluginResult object with a status and message.
*/
public PluginResult execute(String action, JSONArray args, String callbackId) {
this.callback = callbackId;
if (action.equals("encode")) {
JSONObject obj = args.optJSONObject(0);
if (obj != null) {
String type = obj.optString("type");
String data = obj.optString("data");
// If the type is null then force the type to text
if (type == null) {
type = TEXT_TYPE;
}
if (data == null) {
return new PluginResult(PluginResult.Status.ERROR, "User did not specify data to encode");
}
encode(type, data);
} else {
return new PluginResult(PluginResult.Status.ERROR, "User did not specify data to encode");
}
}
else if (action.equals("scan")) {
scan();
} else {
return new PluginResult(PluginResult.Status.INVALID_ACTION);
}
PluginResult r = new PluginResult(PluginResult.Status.NO_RESULT);
r.setKeepCallback(true);
return r;
}
/**
* Starts an intent to scan and decode a barcode.
*/
public void scan() {
Intent intentScan = new Intent("com.phonegap.plugins.barcodescanner.SCAN");
intentScan.addCategory(Intent.CATEGORY_DEFAULT);
this.ctx.startActivityForResult((Plugin) this, intentScan, REQUEST_CODE);
}
/**
* Called when the barcode scanner intent completes
*
* @param requestCode The request code originally supplied to startActivityForResult(),
* allowing you to identify who this result came from.
* @param resultCode The integer result code returned by the child activity through its setResult().
* @param intent An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
*/
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == REQUEST_CODE) {
if (resultCode == Activity.RESULT_OK) {
JSONObject obj = new JSONObject();
try {
obj.put("text", intent.getStringExtra("SCAN_RESULT"));
obj.put("format", intent.getStringExtra("SCAN_RESULT_FORMAT"));
obj.put("cancelled", false);
} catch(JSONException e) {
//Log.d(LOG_TAG, "This should never happen");
}
this.success(new PluginResult(PluginResult.Status.OK, obj), this.callback);
} else if (resultCode == Activity.RESULT_CANCELED) {
JSONObject obj = new JSONObject();
try {
obj.put("text", "");
obj.put("format", "");
obj.put("cancelled", true);
} catch(JSONException e) {
//Log.d(LOG_TAG, "This should never happen");
}
this.success(new PluginResult(PluginResult.Status.OK, obj), this.callback);
} else {
this.error(new PluginResult(PluginResult.Status.ERROR), this.callback);
}
}
}
/**
* Initiates a barcode encode.
* @param data The data to encode in the bar code
* @param data2
*/
public void encode(String type, String data) {
Intent intentEncode = new Intent("com.phonegap.plugins.barcodescanner.ENCODE");
intentEncode.putExtra("ENCODE_TYPE", type);
intentEncode.putExtra("ENCODE_DATA", data);
this.ctx.startActivity(intentEncode);
}
}

View File

@@ -1,63 +0,0 @@
/**
* cordova is available under *either* the terms of the modified BSD license *or* the
* MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
*
* Copyright (c) Matt Kane 2010
* Copyright (c) 2011, IBM Corporation
*/
var BarcodeScanner = function() {
};
//-------------------------------------------------------------------
BarcodeScanner.Encode = {
TEXT_TYPE: "TEXT_TYPE",
EMAIL_TYPE: "EMAIL_TYPE",
PHONE_TYPE: "PHONE_TYPE",
SMS_TYPE: "SMS_TYPE",
// CONTACT_TYPE: "CONTACT_TYPE", // TODO: not implemented, requires passing a Bundle class from Javascriopt to Java
// LOCATION_TYPE: "LOCATION_TYPE" // TODO: not implemented, requires passing a Bundle class from Javascriopt to Java
};
//-------------------------------------------------------------------
BarcodeScanner.prototype.scan = function(successCallback, errorCallback) {
if (errorCallback == null) { errorCallback = function() {}}
if (typeof errorCallback != "function") {
console.log("BarcodeScanner.scan failure: failure parameter not a function");
return
}
if (typeof successCallback != "function") {
console.log("BarcodeScanner.scan failure: success callback parameter must be a function");
return
}
cordova.exec(successCallback, errorCallback, 'BarcodeScanner', 'scan', []);
};
//-------------------------------------------------------------------
BarcodeScanner.prototype.encode = function(type, data, successCallback, errorCallback, options) {
if (errorCallback == null) { errorCallback = function() {}}
if (typeof errorCallback != "function") {
console.log("BarcodeScanner.scan failure: failure parameter not a function");
return
}
if (typeof successCallback != "function") {
console.log("BarcodeScanner.scan failure: success callback parameter must be a function");
return
}
cordova.exec(successCallback, errorCallback, 'BarcodeScanner', 'encode', [{"type": type, "data": data, "options": options}]);
};
//-------------------------------------------------------------------
if(!window.plugins) {
window.plugins = {};
}
if (!window.plugins.barcodeScanner) {
window.plugins.barcodeScanner = new BarcodeScanner();
}

View File

@@ -1,152 +0,0 @@
/**
* PhoneGap is available under *either* the terms of the modified BSD license *or* the
* MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
*
* Copyright (c) Matt Kane 2010
* Copyright (c) 2011, IBM Corporation
*/
package com.phonegap.plugins.barcodescanner;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import org.apache.cordova.api.Plugin;
import org.apache.cordova.api.PluginResult;
/**
* This calls out to the ZXing barcode reader and returns the result.
*/
public class BarcodeScanner extends Plugin {
private static final String SCAN = "scan";
private static final String ENCODE = "encode";
private static final String CANCELLED = "cancelled";
private static final String FORMAT = "format";
private static final String TEXT = "text";
private static final String DATA = "data";
private static final String TYPE = "type";
private static final String SCAN_INTENT = "com.phonegap.plugins.barcodescanner.SCAN";
private static final String ENCODE_DATA = "ENCODE_DATA";
private static final String ENCODE_TYPE = "ENCODE_TYPE";
private static final String ENCODE_INTENT = "com.phonegap.plugins.barcodescanner.ENCODE";
private static final String TEXT_TYPE = "TEXT_TYPE";
private static final String EMAIL_TYPE = "EMAIL_TYPE";
private static final String PHONE_TYPE = "PHONE_TYPE";
private static final String SMS_TYPE = "SMS_TYPE";
public static final int REQUEST_CODE = 0x0ba7c0de;
public String callback;
/**
* Constructor.
*/
public BarcodeScanner() {
}
/**
* Executes the request and returns PluginResult.
*
* @param action The action to execute.
* @param args JSONArray of arguments for the plugin.
* @param callbackId The callback id used when calling back into JavaScript.
* @return A PluginResult object with a status and message.
*/
public PluginResult execute(String action, JSONArray args, String callbackId) {
this.callback = callbackId;
if (action.equals(ENCODE)) {
JSONObject obj = args.optJSONObject(0);
if (obj != null) {
String type = obj.optString(TYPE);
String data = obj.optString(DATA);
// If the type is null then force the type to text
if (type == null) {
type = TEXT_TYPE;
}
if (data == null) {
return new PluginResult(PluginResult.Status.ERROR, "User did not specify data to encode");
}
encode(type, data);
} else {
return new PluginResult(PluginResult.Status.ERROR, "User did not specify data to encode");
}
}
else if (action.equals(SCAN)) {
scan();
} else {
return new PluginResult(PluginResult.Status.INVALID_ACTION);
}
PluginResult r = new PluginResult(PluginResult.Status.NO_RESULT);
r.setKeepCallback(true);
return r;
}
/**
* Starts an intent to scan and decode a barcode.
*/
public void scan() {
Intent intentScan = new Intent(SCAN_INTENT);
intentScan.addCategory(Intent.CATEGORY_DEFAULT);
this.cordova.startActivityForResult((Plugin) this, intentScan, REQUEST_CODE);
}
/**
* Called when the barcode scanner intent completes
*
* @param requestCode The request code originally supplied to startActivityForResult(),
* allowing you to identify who this result came from.
* @param resultCode The integer result code returned by the child activity through its setResult().
* @param intent An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
*/
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == REQUEST_CODE) {
if (resultCode == Activity.RESULT_OK) {
JSONObject obj = new JSONObject();
try {
obj.put(TEXT, intent.getStringExtra("SCAN_RESULT"));
obj.put(FORMAT, intent.getStringExtra("SCAN_RESULT_FORMAT"));
obj.put(CANCELLED, false);
} catch(JSONException e) {
//Log.d(LOG_TAG, "This should never happen");
}
this.success(new PluginResult(PluginResult.Status.OK, obj), this.callback);
} else if (resultCode == Activity.RESULT_CANCELED) {
JSONObject obj = new JSONObject();
try {
obj.put(TEXT, "");
obj.put(FORMAT, "");
obj.put(CANCELLED, true);
} catch(JSONException e) {
//Log.d(LOG_TAG, "This should never happen");
}
this.success(new PluginResult(PluginResult.Status.OK, obj), this.callback);
} else {
this.error(new PluginResult(PluginResult.Status.ERROR), this.callback);
}
}
}
/**
* Initiates a barcode encode.
* @param data The data to encode in the bar code
* @param data2
*/
public void encode(String type, String data) {
Intent intentEncode = new Intent(ENCODE_INTENT);
intentEncode.putExtra(ENCODE_TYPE, type);
intentEncode.putExtra(ENCODE_DATA, data);
this.cordova.getActivity().startActivity(intentEncode);
}
}

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>CaptureActivity</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@@ -1,175 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2008 ZXing authors
Licensed 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.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.zxing.client.android"
android:versionName="4.3.1"
android:versionCode="87"
android:installLocation="auto">
<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"/>
<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"/>
</intent-filter>
<!-- Allow web apps to launch Barcode Scanner by linking to http://zxing.appspot.com/scan. -->
<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="http" android:host="zxing.appspot.com" android:path="/scan"/>
</intent-filter>
<!-- We also support a Google Product Search URL. -->
<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="http" android:host="www.google.com" android:path="/m/products/scan"/>
</intent-filter>
<!-- And the UK version. -->
<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="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:stateNotNeeded="true">
</activity>
<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"/>
</intent-filter>
<!-- This allows us to handle the Share button in Contacts. -->
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/x-vcard"/>
</intent-filter>
<!-- This allows us to handle sharing any plain text . -->
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
<activity android:name=".book.SearchBookContentsActivity"
android:label="@string/sbc_name"
android:stateNotNeeded="true"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="com.google.zxing.client.android.SEARCH_BOOK_CONTENTS"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</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>
<action android:name="com.google.zxing.client.android.SHARE"/>
<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:stateNotNeeded="true">
<intent-filter>
<action android:name="android.intent.action.PICK"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</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"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name=".HelpActivity"
android:screenOrientation="user">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
</manifest>

View File

@@ -1,21 +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.
# 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

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,26 +0,0 @@
<!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>

View File

@@ -1,23 +0,0 @@
<!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>

View File

@@ -1,19 +0,0 @@
<!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>

View File

@@ -1,14 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,26 +0,0 @@
<!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>

View File

@@ -1,23 +0,0 @@
<!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>

View File

@@ -1,19 +0,0 @@
<!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>

View File

@@ -1,14 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,26 +0,0 @@
<!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>

View File

@@ -1,23 +0,0 @@
<!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>

View File

@@ -1,19 +0,0 @@
<!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>

View File

@@ -1,14 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,26 +0,0 @@
<!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>

View File

@@ -1,23 +0,0 @@
<!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>

View File

@@ -1,19 +0,0 @@
<!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>

View File

@@ -1,14 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,26 +0,0 @@
<!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>

View File

@@ -1,23 +0,0 @@
<!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>

View File

@@ -1,19 +0,0 @@
<!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>

View File

@@ -1,14 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,26 +0,0 @@
<!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>

View File

@@ -1,23 +0,0 @@
<!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>

View File

@@ -1,19 +0,0 @@
<!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>

View File

@@ -1,14 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,26 +0,0 @@
<!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>

View File

@@ -1,23 +0,0 @@
<!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>

View File

@@ -1,19 +0,0 @@
<!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>

View File

@@ -1,14 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,15 +0,0 @@
<!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>

View File

@@ -1,26 +0,0 @@
<!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>

View File

@@ -1,23 +0,0 @@
<!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>

View File

@@ -1,19 +0,0 @@
<!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>

View File

@@ -1,14 +0,0 @@
<!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>

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