Skip to content
This repository has been archived by the owner on May 17, 2022. It is now read-only.

myflashlab/barcode-ANE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Barcode ANE (Android+iOS)

This ANE enables AS3 AIR developers, to easily use the native camera on device and scan for almost all different barcodes and get the result to their AIR project.

Supported barcodes:

  • UPCE
  • CODE39
  • EAN13
  • EAN8
  • CODE128
  • PDF417
  • QR
  • AZTEC
  • ITF14
  • DATAMATRIX

find the latest asdoc for this ANE here.

AIR Usage

For the complete AS3 code usage, see the demo project here.

import com.myflashlab.air.extensions.barcode.*;

var _ex:Barcode = new Barcode();
_ex.addEventListener(BarcodeEvent.RESULT, onResult);
_ex.addEventListener(BarcodeEvent.CANCEL, onCancel);

if(OverrideAir.os == OverrideAir.ANDROID)
{
	// to speed up the launch time on Android, you may call the warmup method when
	// it is appropriate in your application. This may be needed if you are using the
	// full version of AndroidSupport dependency.
	// the first time you call the warmup method, your app will freeze for a few seconds...
	_ex.warmup();			
}

if (_ex.isSupported())
{
	trace("Please wait...");

	// to read only the selected barcode types. use an array to read one or more barcodes
    //_ex.open([Barcode.QR], File.applicationDirectory.resolvePath("com_doitflash_barcode_beep.mp3"), true, "Cancel");
	
	// to read all barcodes supported by the extension. read documentations to know which barcodes are supported.
	_ex.open(null, File.applicationDirectory.resolvePath("com_doitflash_barcode_beep.mp3"), true, "Cancel");
}
else
{
	trace("isSupported: ", _ex.isSupported());
}

function onCancel(e:BarcodeEvent):void
{
    trace("scan canceled")
}

function onResult(e:BarcodeEvent):void
{
    trace("type is: ", e.param.type)
	trace("data is: ", e.param.data);
}

AIR .xml manifest

<!--
FOR ANDROID:
-->
<manifest android:installLocation="auto">
	
	<!--You surely need permission to use the camera, right?-->
	<uses-permission android:name="android.permission.CAMERA" />
	<uses-feature android:name="android.hardware.camera" />
	<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
	<uses-feature android:name="android.hardware.screen.landscape" />
	
	<!--If you wish to use the vibration when a barcode is detected, you need to set the permission like below-->
	<uses-permission android:name="android.permission.VIBRATE"/>
	
	<!--Zxing lib requires you to set this screen supports-->
	<supports-screens 	android:anyDensity="true" 
						android:largeScreens="true" 
						android:normalScreens="true" 
						android:smallScreens="true" 
						android:xlargeScreens="true" />
		
	<application>
		
		<activity>
			<intent-filter>
				<action android:name="android.intent.action.MAIN" />
				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
			<intent-filter>
				<action android:name="android.intent.action.VIEW" />
				<category android:name="android.intent.category.BROWSABLE" />
				<category android:name="android.intent.category.DEFAULT" />
			</intent-filter>
		</activity>
		
		<!--Main activity for detecting barcodes-->
		<activity 	android:name="com.google.zxing.client.android.CaptureActivity" 
					android:clearTaskOnLaunch="true" 
					android:screenOrientation="landscape" 
					android:configChanges="orientation|keyboardHidden" 
					android:stateNotNeeded="true" 
					android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
					android:windowSoftInputMode="stateAlwaysHidden" />
		
		<!--bridge activity between Native Android and Adobe Air-->
		<activity 	android:name="com.doitflash.barcode.utils.ExBridge" 
					android:theme="@style/Theme.Transparent" />
		
	</application>
</manifest>







<!--
FOR iOS:
-->
<InfoAdditions>
	
	<!--iOS 10.0 or higher can support this ANE-->
	<key>MinimumOSVersion</key>
	<string>10.0</string>
	
	<!--A new feature for iOS 10 submissions requires you to add the 'purpose string' to your app when accessing a user's private data-->
	<key>NSCameraUsageDescription</key>
	<string>My description about why I need this feature in my app</string>
	
</InfoAdditions>






<!--
Embedding the ANE:
-->
<extensions>

	<extensionID>com.myflashlab.air.extensions.barcode</extensionID>
	
	<!-- http://www.myflashlabs.com/product/native-access-permission-check-settings-menu-air-native-extension/ -->
	<extensionID>com.myflashlab.air.extensions.permissionCheck</extensionID>
	
	<!-- https://github.com/myflashlab/common-dependencies-ANE -->
	<extensionID>com.myflashlab.air.extensions.dependency.overrideAir</extensionID>
	<extensionID>com.myflashlab.air.extensions.dependency.androidx.core</extensionID>
	
</extensions>

Requirements

  • This ANE is dependent on permissionCheck. Download it from here.
  • AIR SDK 30+
  • Android 19+
  • iOS 10.0+

Permissions

Below are the list of Permissions this ANE might require. Check out the demo project available at this repository to see how we have used the PermissionCheck ANE to ask for the permissions.

Necessary Optional
SOURCE_CAMERA NONE

Commercial Version

https://www.myflashlabs.com/product/qr-code-ane-adobe-air-native-extension/

Barcode code scanner ANE

Tutorials

How to embed ANEs into FlashBuilder, FlashCC and FlashDevelop

Premium Support

Premium Support package If you are an active MyFlashLabs club member, you will have access to our private and secure support ticket system for all our ANEs. Even if you are not a member, you can still receive premium help if you purchase the premium support package.

About

Scan almost any barcode type with this super fast barcode scanner air native extension

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published