影视久久国产高清_成人毛片网站av_国产天堂AV在线色_亚洲国产精品人人爽夜夜爽_91免费观看国产_亚洲av网站在线播放_中文字幕日韩在线观看_欧美精品乱码在线看_亚洲AⅤ永久无码毛片蜜桃_日韩激情无码专区精品

新聞資訊

斑馬PDA如何使用Intent Output 掃描廣播模式輸出

2025-03-19 09:17:11



概述

Intent Output 允許 DataWedge 獲取和處理的數(shù)據(jù)作為 Android Intent 對象內(nèi)的有效負載發(fā)送到關(guān)聯(lián)的前臺應(yīng)用程序。這允許以編程方式將獲取的數(shù)據(jù)傳遞到應(yīng)用程序,在應(yīng)用程序中可以使用或進一步處理數(shù)據(jù)。應(yīng)用程序的核心組件(其活動、服務(wù)和廣播接收器)也可以通過Intent 激活,許多 DataWedge 功能也可以通過 DataWedge API激活。image.png


Intent 對象

Intent 對象是描述所需操作的一組信息。它包括要執(zhí)行操作的數(shù)據(jù)、應(yīng)執(zhí)行操作的組件類別以及其他相關(guān)數(shù)據(jù)和/或指令。當發(fā)起Intent 時,Android 會找到適當?shù)慕M件來響應(yīng)該Intent ,啟動該組件的新實例(如果需要),并將Intent 對象傳遞給它。

組件通過Intent 過濾器宣傳它們的功能(它們可以響應(yīng)的Intent 類型)。由于系統(tǒng)必須在啟動組件之前了解組件可以處理哪些Intent ,因此Intent 過濾器在應(yīng)用程序的AndroidManifest.xml文件中指定為 <intent-filter> 元素。一個組件可以有任意數(shù)量的Intent 過濾器,每個過濾器描述不同的功能。

例如,如果清單包含...

<intent-filter>
...
<action android:name="android.intent.action.DEFAULT" />
<category android:name="android.intent.category.MAIN" />
</intent-filter>

...Intent 輸出配置中的

Intent 操作將是:<可自定義>

android.intent.action.DEFAULT

Intent 類別為:<可自定義>

android.intent.category.MAIN

Intent 單一條碼數(shù)據(jù)串輸出:

com.symbol.datawedge.data_string

* Datawedge 中設(shè)置說明

image.png

* 樣例程序訪問

image.png


輸出原始數(shù)據(jù)

除了正常的純文本和十六進制模式之外,DataWedge 還可以在應(yīng)用任何編碼器之前以原始形式輸出采集的數(shù)據(jù)。如果需要自定義編碼器來獲取 Zebra 不支持的字符集,這會很有用。

使用Intent 額外以字節(jié)流形式接收原始數(shù)據(jù)com.symbol.datawedge.decode_data。請參閱下面的單解碼模式部分

***原始數(shù)據(jù)無法作為鍵輸出。

Intent 輸出設(shè)置

DataWedge 通過Intent 類別中的Intent 操作調(diào)用 Intent ,如其文件中所述。AndroidManifest.xml

當組合時,這兩個值就像一個“通道”,應(yīng)用程序可以監(jiān)聽使用相同組合的Intent ,過濾掉使用不同值對的其他Intent 中的“噪音”。一旦知道這些值,DataWedge Intent 輸出必須設(shè)置為 match

組件信息指定指定接收Intent 數(shù)據(jù)的應(yīng)用程序的包名稱和簽名。這增加了一定程度的安全性,以保證數(shù)據(jù)僅傳遞到預(yù)期的應(yīng)用程序。如果使用 DataWedge內(nèi)容提供程序,則只有指定的包名稱才能查詢內(nèi)容提供程序。

  • 指定包名稱后,DataWedge 僅向包名稱發(fā)送顯式Intent 。或者,啟用應(yīng)用程序簽名檢查可以為Intent 傳遞增加另一個級別的安全性。DataWedge 在發(fā)送Intent 之前匹配應(yīng)用程序的簽名。如果簽名不匹配,DataWedge 不會發(fā)送Intent 。如果未啟用簽名檢查,DataWedge 將根據(jù)包名稱發(fā)送顯式Intent 。

  • 例如,如果在沒有簽名檢查的情況下將程序包名稱指定為“com.zebra.app1”,則可以使用相同的程序包名稱創(chuàng)建另一個應(yīng)用程序并偽裝成原始應(yīng)用程序 - 可以在設(shè)備上卸載原始應(yīng)用程序并使用新的應(yīng)用程序可以安裝惡意應(yīng)用程序作為替代品。這會導(dǎo)致Intent 數(shù)據(jù)被傳遞給惡意應(yīng)用程序。相反,如果對原應(yīng)用程序啟用了簽名檢查,即使新應(yīng)用程序具有相同的包名,但簽名不同,因此無法將Intent 數(shù)據(jù)傳遞給惡意應(yīng)用程序。

使用內(nèi)容提供程序選項允許應(yīng)用程序利用 DataWedge 的內(nèi)容提供程序從大于 500 KB 的文件(例如圖像)檢索掃描數(shù)據(jù),主要使用 Signature Capture 和 NextGen SimulScan。內(nèi)容提供程序是一個 Android 應(yīng)用程序組件,它封裝了要在應(yīng)用程序之間共享的數(shù)據(jù)。

這些功能的參數(shù)可以通過 UI 或使用Set Config API進行配置。

有關(guān)詳細信息,請參閱使用內(nèi)容提供程序程序員指南。

重要提示:對于直接輸出到活動的掃描應(yīng)用程序,該活動必須在應(yīng)用程序文件中指定為“singleTop”AndroidManifest.xml如果無法以這種方式指定活動,將導(dǎo)致每次解碼時都會啟動該活動的實例,并將獲取的數(shù)據(jù)發(fā)送到每個新生成的實例。

要使用Intent 輸出選項,配置 DataWedge

1. 找到正在配置的配置文件的Intent 輸出部分。

2. 選中“已啟用”框以激活“Intent 輸出”:

image.png

3. 指定操作、類別和交付,如下所述:

    Intent 操作 -指定處理Intent 的操作
    Intent 類別 -指定要處理的Intent 類別
    Intent 交付 -用于為基于Intent 的數(shù)據(jù)選擇四種交付方法之一:

  • 通過 startActivity 發(fā)送 -調(diào)用 startActivity() Android API 來傳送數(shù)據(jù)。

  • 通過 startService 發(fā)送 -使用 Android 的 startService() API 傳送數(shù)據(jù)。僅當您的應(yīng)用程序/服務(wù)是針對 Android SDK 版本 25 或更低版本編譯時,才建議使用此方法。如果您的應(yīng)用程序/服務(wù)是針對 SDK 版本 26 或更高版本編譯的,則 startService() 選項不起作用。參考startService Android開發(fā)者文章。

  • 通過 startForegroundService 發(fā)送 -調(diào)用 startForegroundService() Android API 來傳遞數(shù)據(jù)。此選項適用于 Android Oreo (v8.0) 及更高版本。僅當您的應(yīng)用程序/服務(wù)是針對 Android SDK 版本 30 或更低版本編譯時,才建議使用此方法。如果您的應(yīng)用程序/服務(wù)是針對 SDK 版本 31 或更高版本編譯的,則 startForegroundService() 選項不起作用。參考startService Android開發(fā)者文章。

  • 廣播Intent - 可以設(shè)置接收者前臺標志,授予廣播接收者以更短的超時間隔以前臺優(yōu)先級運行的權(quán)限。 Zebra 建議僅在設(shè)備啟動后立即發(fā)送Intent 時出現(xiàn)延遲時才使用此標志。Intent.FLAG_RECEIVER_FOREGROUND

*** 普通就選擇廣播Intent 方式


單解碼模式

單模式一次讀取和解碼一個條形碼,是最常見的解碼模式。要同時解碼多個條形碼(例如使用符合 UDI 的對象),請參閱UDI/多重解碼模式。

Parameters

Name: "com.symbol.datawedge.source"
Type: [String]
Contents: Source of incoming data
Possible values:

  • "msr"

  • "scanner"

  • "simulscan"

  • "serial"

  • "voice"

  • "rfid"

NOTE: Source of incoming data is "scanner" for camera, imager or scanner.


Name: "com.symbol.datawedge.label_type"
Type: [String]
Contents: Barcode label type (i.e. "EAN128")
Possible values:

  • "LABEL-TYPE-CODE39"

  • "LABEL-TYPE-CODABAR"

  • "LABEL-TYPE-CODE128"

  • "LABEL-TYPE-D2OF5"

  • "LABEL-TYPE-IATA2OF5"

  • "LABEL-TYPE-I2OF5"

  • "LABEL-TYPE-CODE93"

  • "LABEL-TYPE-UPCA"

  • "LABEL-TYPE-UPCE0"

  • "LABEL-TYPE-UPCE1"

  • "LABEL-TYPE-EAN8"

  • "LABEL-TYPE-EAN13"

  • "LABEL-TYPE-MSI"

  • "LABEL-TYPE-EAN128"

  • "LABEL-TYPE-TRIOPTIC39"

  • "LABEL-TYPE-BOOKLAND"

  • "LABEL-TYPE-COUPON"

  • "LABEL-TYPE-DATABAR-COUPON"

  • "LABEL-TYPE-ISBT128"

  • "LABEL-TYPE-CODE32"

  • "LABEL-TYPE-PDF417"

  • "LABEL-TYPE-MICROPDF"

  • "LABEL-TYPE-TLC39"

  • "LABEL-TYPE-CODE11"

  • "LABEL-TYPE-MAXICODE"

  • "LABEL-TYPE-DATAMATRIX"

  • "LABEL-TYPE-QRCODE"

  • "LABEL-TYPE-GS1-DATABAR"

  • "LABEL-TYPE-GS1-DATABAR-LIM"

  • "LABEL-TYPE-GS1-DATABAR-EXP"

  • "LABEL-TYPE-USPOSTNET"

  • "LABEL-TYPE-USPLANET"

  • "LABEL-TYPE-UKPOSTAL"

  • "LABEL-TYPE-JAPPOSTAL"

  • "LABEL-TYPE-AUSPOSTAL"

  • "LABEL-TYPE-DUTCHPOSTAL"

  • "LABEL-TYPE-FINNISHPOSTAL-4S"

  • "LABEL-TYPE-CANPOSTAL"

  • "LABEL-TYPE-CHINESE-2OF5"

  • "LABEL-TYPE-AZTEC"

  • "LABEL-TYPE-MICROQR"

  • "LABEL-TYPE-US4STATE"

  • "LABEL-TYPE-US4STATE-FICS"

  • "LABEL-TYPE-COMPOSITE-AB"

  • "LABEL-TYPE-COMPOSITE-C"

  • "LABEL-TYPE-WEBCODE"

  • "LABEL-TYPE-SIGNATURE"

  • "LABEL-TYPE-KOREAN-3OF5"

  • "LABEL-TYPE-MATRIX-2OF5"

  • "LABEL-TYPE-OCR"

  • "LABEL-TYPE-HANXIN"

  • "LABEL-TYPE-MAILMARK"

  • "MULTICODE-DATA-FORMAT"

  • "LABEL-TYPE-GS1-DATAMATRIX"

  • "LABEL-TYPE-GS1-QRCODE"

  • "LABEL-TYPE-DOTCODE"

  • "LABEL-TYPE-GRIDMATRIX"

  • "LABEL-TYPE-UNDEFINED"


Name: "com.symbol.datawedge.data_string"
Type: [String]
Contents: Acquired barcode characters
Example: "abcde12345"


Name: "com.symbol.datawedge.decode_data"
Type: [List <byte [ ]>]
Contents: Acquired raw (unmodified) data as an array list of byte arrays
Example: List_Item_1(array_1(byte11,byte12,byte13)),List_Item_2(array_2(byte21,byte22,byte23)) ...
Sample code:

ArrayList<byte[]> rawData =
(ArrayList <byte[]>) initiatingIntent.getSerializableExtra("com.symbol.datawedge.decode_data");

if (rawData != null)
{
byte[] rawBytes = rawData.get(0);
for (int i = 0; i < rawBytes.length; i++)
Log.d(LOG_TAG, i + ": " + rawBytes[i]);
}

Name: "com.symbol.datawedge.decoded_mode"
Type: [String]
Contents: Mode used to decode the incoming data
Possible values:

  • "multiple_decode"

  • "single_decode"


UDI/多重解碼模式

解碼符合 UDI 的對象時,會同時從多個條形碼獲取數(shù)據(jù)并作為多解碼包輸出,這與單解碼包不同。DataWedge 還可以在一次掃描中獲取多個非 UDI 條形碼。本節(jié)適用于兩種模式。

Parameters

Name: "com.symbol.datawedge.decode_mode"
Type: [String]
Contents: Mode used to decode incoming data
Possible values:

  • "multiple_decode"

  • "single_decode"


Name: "com.symbol.datawedge.smart_decode_type"
Type: [String]
Contents: Decode type
Possible values:

  • “udi”

  • “multibarcode”


Name: "com.symbol.datawedge.data_string"
Type: [String]
Contents: Acquired barcode characters
Example: "abcde12345"


Name: "com.symbol.datawedge.decode_data"
Type: [List <byte [ ]>]
Contents: Acquired raw (unmodified) data as an array list of byte arrays
Example: List_Item_1(array_1(byte11,byte12,byte13)), List_Item_2(array_2(byte21,byte22,byte23)) ...


Name: "com.symbol.datawedge.source"
Type: [String]
Contents: Source of incoming data
Possible values:

  • "msr"

  • "scanner"

  • "simulscan"


Name: "com.symbol.datawedge.label_id"
Type: [String]
Contents: UDI type of incoming data
Possible values:

  • “UDI_HIBCC”

  • “UDI_GS1”

  • “UDI_ICCBBA”

  • “UNDEFINED”


Name: "com.symbol.datawedge.barcodes"
Type: [List <Bundle>]
Contents: See Bundle description (below)


Name: "com.symbol.datawedge.tokenized_data"
Type: [List <Bundle>]
Contents: See Bundle description (below)
Note: Source of incoming data is "scanner" for camera, imager or scanner


Barcode Bundle

Bundle name: "com.symbol.datawedge.barcodes"

Parameters

Name: "com.symbol.datawedge.label_type"
Type: [String]
Contents: Barcode label type, original symbology (i.e. "EAN128")


Name: "com.symbol.datawedge.decode_data"
Type: [byte [ ] ]
Contents: Acquired raw (unmodified) data as a byte array


Name: "com.symbol.datawedge.data_string"
Type: [String]
Contents: Acquired barcode characters
Example: "abcde12345"


Tokenized Data Bundle

Bundle name: "com.symbol.datawedge.tokenized_data"

Parameters

Name: "token_id"
Type: [String]
Contents: Data in a UDI-defined tag
Possible values: (see token IDs, below)


Name: "token_data_type"
Type: [String]
Contents: Incoming data type
Example: date, long, string


Name: "token_format"
Type: [String]
Contents: Format of incoming string
Example: YYYYMMDD


Name: "token_string_data"
Type: [String]
Contents: Acquired barcode characters
Example: "abcde12345"


Name: "token_binary_data"
Type: [byte [ ] ]
Contents: Acquired barcode data as a byte array


Token IDs

Token ID: di
Display Name: Device identifier


Token ID: manufacturing_date_original
Display Name: Manufacturing date


Token ID: expiration_date_original
Display Name: Expiration date


Token ID: lot_number
Display Name: Lot number


Token ID: serial_number
Display Name: Serial number


Token ID: mpho_lot_number
Display Name: Medical products of human origin (MPHO) lot number


Token ID: donation_id
Display Name: Donation ID number


Token ID: labeler_identification_code
Display Name: Labeler ID code


Token ID: product_or_catalog_number
Display Name: Product or catalog number


Token ID: unit_of_measure_id
Display Name: Unit of measure ID


Token ID: Quantity
Display Name: Quantity


其他解碼標簽

可以使用特定的字符串標簽來檢索添加到Intent 包中的與解碼相關(guān)的數(shù)據(jù)。將下面的代碼與接下來的部分中的字符串標記一起使用。

Intent.getStringExtra()

標簽:LABEL_TYPE_TAG
類型:[字符串]
名稱:“com.symbol.datawedge.label_type”
內(nèi)容:條形碼標簽類型
示例:“LABEL-TYPE-EAN128”


標簽:DATA_STRING_TAG
類型:[String]
名稱:“com.symbol.datawedge.data_string”
內(nèi)容:獲取的條形碼字符
示例:“abcde12345”

注意:當同時采集多個條形碼時,解碼數(shù)據(jù)將連接起來并作為單個字符串發(fā)送出去。


標簽:DECODE_DATA_TAG
類型:[byte []]
名稱:“com.symbol.datawedge.decode_data”
內(nèi)容:以字節(jié)數(shù)組列表形式返回的解碼數(shù)據(jù)。

注意:在大多數(shù)情況下,每次解碼都會有一個字節(jié)數(shù)組。

客服