- *BASICS*
- The Knox Ecosystem
- White Paper
- Samsung Knox Portal
- Knox Cloud Services
- General Knox Support
- Knox Licenses
- *FOR IT ADMINS*
- Knox Admin Portal
- Knox Suite
- Knox Platform for Enterprise
- Introduction
- How-to videos
- Before you begin
- Get started with UEMs
- Introduction
- Blackberry UEM
- Citrix Endpoint Management
- FAMOC
- IBM MaaS360
- Microsoft Intune
- MobileIron Cloud
- MobileIron Core
- Samsung Knox Manage
- SOTI MobiControl
- VMware Workspace ONE UEM
- Knox Service Plugin
- Release notes
- Migrate to Android 11
- FAQs
- Troubleshoot
- KBAs
- Knox Mobile Enrollment
- Introduction
- How-to videos
- Get started
- Features
- Register resellers
- Add an admin
- Create profiles
- Google device owner support
- MDM compatibility matrices
- Device users
- Activity log
- Enroll and unenroll devices
- Configure devices
- Provide KME feedback
- Use the Knox Deployment App (KDA)
- Recover Google FRP locked devices using KME
- Role-based access control (RBAC)
- Release notes
- FAQs
- Troubleshoot
- KBAs
- On-Premise
- Knox Configure
- Mobile
- Wearables
- Shared Device
- KBAs
- Knox Capture
- Introduction
- How it works
- How-to videos
- IT admins: Get started
- Getting started with Knox Capture
- Step 1: Launch Knox Capture
- Step 2: Create a scanning profile
- Step 3: Select apps and activities
- Step 4: Configure the scanner
- Step 5: Set keystroke output rules
- Step 6: Test apps in your configuration
- Step 7: Share your configuration
- Step 8: Deploy Knox Capture in Managed mode
- End users: Get started
- Features
- Release notes
- FAQs
- Troubleshoot
- Knox Asset Intelligence
- Knox Manage
- Introduction
- How-to videos
- Get started
- Video: Getting started with Knox Manage
- Integration with Managed Service Provider
- Access Knox Manage
- Configure basic environments
- Create user accounts
- Create groups
- Create organization
- Set up devices and profiles
- Set up Knox Manage deployment with a Knox Suite license
- Manage Chromebooks
- Manage Android devices with the Android Management API
- Manage Shared iPads
- Configure
- Licenses
- Organization
- Users
- Sync user information
- Groups
- Devices
- Content
- Applications
- View applications
- Add applications
- Introduction
- Add internal Android and iOS applications
- Add internal Windows applications
- Add public applications using Google Play Store
- Add public applications using iOS App Store
- Add public applications using Managed Google Play
- Add public applications using Managed Google Play Private
- Add public applications using Managed Google Play Store Private Web
- Add public applications using Microsoft Store
- Add Chrome OS applications
- Assign applications
- Introduction
- Assign internal Android and iOS apps
- Assign iOS App Store applications
- Assign Google Play applications
- Assign Managed Google Play applications
- Assign Managed Google Play Private applications
- Assign Managed Google Play public web apps
- Assign Windows applications
- Assign Chrome OS applications
- Manage applications
- Volume Purchase Program for iOS
- Profile
- Knox E-FOTA
- Certificates
- Advanced settings
- Monitor
- Kiosk devices
- Knox Remote Support
- Active Directory
- Microsoft Exchange
- Mobile Admin
- Appendix
- Release notes
- Features
- FAQs
- KBAs
- Knox E-FOTA
- Introduction
- How-to videos
- Get started
- Features
- EMM integration
- Appendix
- Release notes
- FAQs
- KBAs
- Troubleshoot
- Knox E-FOTA On-Premises
- Legacy Knox E-FOTA products
- Knox Guard
- Introduction
- How-to video
- Get started
- Using Knox Guard
- Dashboard
- Manage devices
- Introduction
- Accept or reject devices
- Upload devices
- Delete devices
- Complete payment
- Send payment overdue notification
- Enable or disable SIM control
- Download devices as CSV
- View device log
- View device deletion log
- Start and stop blinking reminder
- Lock and unlock devices
- Update lock message
- Send relock timestamp
- Turn on/off relock reminder
- Manage policies
- Manage licenses
- Manage resellers
- Manage admins and roles
- Activity log
- Knox Deployment App
- Release notes
- FAQs
- KBAs
- Support
- Samsung Care+ for Business
- *FOR RESELLERS*
- Knox Deployment Program
- *FOR MANAGED SERVICE PROVIDERS*
- Knox MSP Program
Intent output
If your business app needs to obtain scanned data programmatically (for example, to process it further in-app), Knox Capture can pass the data within an Android intent object instead of through keystroke output.
You can also enable intent output to work with keystroke output. For example, if you select Send via startActivity as your intent delivery method, Knox Capture first sends keystrokes to the foreground activity, then sends the intent to the new activity instance.
To use Knox Capture's intent output feature:
- Business app developers must ensure the business app receives the intent, and
- IT admins must configure Knox Capture's Intent output feature accordingly.
The information in this section is divided into instructions for business app developers and instructions for Knox Capture admins.
For business app developers
Edit the AndroidManifest.xml file
For your business app to parse the scanned data, you need to set up Knox Capture to send it the correct intent output. To do so, edit AndroidManifest.xml
to define the package name, intent action and category. Knox Capture offers three different methods for your app to receive an Android intent. Refer to Intent output settings for more details.
The following is a snippet demonstrating the manifest information to edit. Ensure you replace any dummy strings with ones relevant to your app.
PackageName = applicationId "com.test.smartscan" AndroidManifest.xml
If you're using an activity to receive the intent:
<activity android:name=”.IntentOutputActivity”> <intent-filter> <action android:name=”testintent.action.activity”/> <category android:name=”android.intent.category.DEFAULT”/> </intent-filter> </activity>
If you're using the foreground service to receive the intent:
<service android:name=”.ForegroundService”> <intent-filter> <action android:name=”testintent.action.service”/> <intent-filter> </service>
If you're using the broadcast receiver to receive the intent:
<receiver android:name=”.DummyReceiver”> <intent-filter> <action android:name=”test.intent.action.receiver”/> </intent-filter> </receiver>
Properly defining the intent filter information ensures that after each successful scan, Knox Capture delivers the intent to your business app through the chosen method.
What's included in the intent output
After a successful scan, the configured intent triggers and is sent to the business app along with the following key information.
Test mode statusIf Send via startActivity is selected as the intent delivery, test mode can be affected. If test mode is active, the intent is not sent and the business app is not launched. Instead, the following error message appears, notifying you that test mode is active.
Not Start Activity in TestMode!
The key/value pair that signifies test mode status is as follows:
Key:= ProfileConstants.KEY_INTENT_TEST_MODE="intent_in_testmode" Value:= true/false : whether Knox Capture test mode is on.The list of scanned bundles
The key/value pair that contains the scanned barcode data is as follows:
Key:= ProfileConstants.INTENT_OUTPUT_SCANNED_BUNDLE_LIST= "com.samsung.smartscan.scanned_bundle_list" Value:= bundle list : the scanned barcode data const val INTENT_OUTPUT_UNPROCESSED_RAW_DATA = "com.samsung.smartscan.unprocessed_raw_data" const val INTENT_OUTPUT_UNPROCESSED_STRING_DATA = "com.samsung.smartscan.unprocessed_string_data" const val INTENT_OUTPUT_SYMBLOGY_TYPE = "com.samsung.smartscan.symblogy_type" const val INTENT_OUTPUT_SCAN_SOURCE = "com.samsung.smartscan.scan_source" const val INTENT_OUTPUT_SCANNER_TYPE = "com.samsung.smartscan.scanner_type"The bundle structure
{ "com.samsung.smartscan.scanner_type": scanner type "com.samsung.smartscan.scan_source": Scandit "com.samsung.smartscan.symblogy_type": barcode symbology, like EAN13 "com.samsung.smartscan.unprocessed_string_data": scanned string data "com.samsung.smartscan.unprocessed_raw_data": scanned data in bytes } const val KEY_SCANNER_TYPE_CAMERA = "camera"
Reading the intent output information
The following code snippet, written in Kotlin, demonstrates how to get and read the data sent from Knox Capture.
fun getAllExtraInfo(intent: Intent):String{ val sb = StringBuilder() val list: ArrayList<Bundle>? = intent.getParcelableArrayListExtra<Bundle>(INTENT_OUTPUT_SCANNED_BUNDLE_LIST) list?.let { sb.append("bundleList::{") for(bundleItem in list){ sb.append("[") bundleItem.getString(INTENT_OUTPUT_SCANNER_TYPE)?.let { sb.append(" scanType= $it, \n") } bundleItem.getString(INTENT_OUTPUT_SCAN_SOURCE)?.let { sb.append(" scanEngine= $it, \n") } bundleItem.getString(INTENT_OUTPUT_SYMBLOGY_TYPE)?.let { sb.append(" symbology= $it, \n") } bundleItem.getStringArrayList(INTENT_OUTPUT_UNPROCESSED_STRING_DATA)?.let { sb.append(" strData= ${it.joinToString {"$it " }}, \n") } bundleItem.getByteArray(INTENT_OUTPUT_UNPROCESSED_RAW_DATA)?.let { sb.append("rawData= ${toHex(it,true)}") } sb.append("]") } sb.append("}") } return sb.toString() }
Knox Capture configuration
You must instruct the IT admin to configure the same package and intent delivery method as specified in the AndroidManifest.xml
file. The following example demonstrates how the IT admin should configure Knox Capture if the intent is received when starting a new activity.
- Intent action —
intent.action.activity
- Intent category —
intent.category.DEFAULT
- Intent delivery —
Send via startActivity
- Component information —
test.smartscan
For Knox Capture admins
To set up intent output:
- On the Knox Capture home screen, tap on the profile you want to set intent output for.
- Under Intent output, tap Select app packages.
- Select the apps for intent output, then tap < in the top left to return to the previous screen. Make sure the package name matches your business app.
- Under Intent output, specify an Intent action, Intent category, and Intent delivery method to handle the intent.
- Intent action and category — The intent filter information matching the business app's intent filter information. For example, if
IntentOutputActivity
is receiving the intent, Knox Capture needs to configure the action asintent.action.activity
and the category asandroid.intent.category.DEFAULT
. - Intent delivery — The app activity that handles the intent-based data. Refer to Intent output settings for descriptions of each activity.
For more details on how to find the intent filter information, see Edit the AndroidManifest.xml file.
At any time, change the apps designated for intent output by tapping Manage app packages under Intent output.
Intent output settings
Refer to the following settings to configure an Android intent.
AndroidManifest.xml
file, under a component's intent-filter
element. For detailed instructions, contact the developers of the app.Setting | Description |
Application package name | Selects one or more apps to receive the intent. |
Intent action | Designates an action to handle the intent. |
Intent category | Sets the category of the intent action. |
Intent delivery |
Selects one of three delivery methods for intent-based data:
|
After you configure an Android intent, the intent delivery method is added to the blue test overlay in Test mode. Refer to Step 6: Test apps in your configuration for steps on how to check your configuration.