The SocketScan Series.

Fast, reliable, and affordable. Trusted by thousands of businesses worldwide.

Find your solution

Your data capture journey starts here.

Shop Scanners Specialty Retail & Field Workers

Lightweight, portable readers for quick and accurate sales or service

Shop Scanners
Explore Rugged Solutions Logistics & Industrial

Rugged scanners built to perform in demanding environments

Explore Rugged Solutions
Get CaptureSDK Developers & App Managers

Easily integrate Socket Mobile readers with your app using CaptureSDK

Get CaptureSDK
shopify-white logo_square_white logo_lightspeed-white

Learn what's best for you.

Not sure where to start? Our selection tool guides you to the perfect reader in minutes.

START YOUR SELECTION

Data readers that work where you work

Deals & Special Offers

Recycling Center & Outlet Store Recycling Center & Outlet Store

Give your old device a new purpose and grab a great deal.

Visit our Recycling Center to trade in your old Socket Mobile reader for credit toward a new one, or shop discounted refurbished models that perform like new.

Recycling Center & Outlet Store

Confidence in every purchase

Catch up with our latest news

Updates for Android 12 Bluetooth Permissions

Dev Community Updates by Long Pan
android-companion-blog

As you may know, Google has been pushing developers to update their apps for Android 12 and newer OS. Among the many changes was a set of Bluetooth permission changes. The single Bluetooth permission required in Android 11 and older version has been changed to three different Bluetooth permissions that covers device discovery, advertisement, and connection separately. In addition, if an app update targets API 31 or above, the Bluetooth permission will not automatically renew. The updated app needs the users' explicit approval.

As we are preparing to update our Socket Mobile Companion app and CaptureSDK to support Android 12, we realized that the transition could potentially cause device connection issues that interrupt end user's workflow. To avoid these interruptions as much as possible, we are making additional changes to ensure the end users will have a smooth experience for the transition:

  • First, we want to make sure that when a user updates their Companion app, they will be prompted to provide permission for Bluetooth. The Companion app will also send out an urgent notification at launch time when it starts the Companion service. However, if users have a scanner already connected and working, they may not revisit the Companion app and the scanner connection can still be interrupted. This is especially true if they set the Companion app for automatic updates.
  • To avoid this issue, we highly recommend you also take proactive actions in updating your app to take advantage of the SDK changes we are making:

The Capture Service provided through the Companion app will try to detect when the required Bluetooth permission is missing and return an error (with a new error code ESKT_BLUETOOTHPERMISSIONMISSING). Your app should handle this error properly and prompt the user to provide permission in the Companion app. Your app can also check the Bluetooth permission status before starting Capture. Here's a code snippet:


if (captureError.getCode() == CaptureError.ESKT_BLUETOOTHPERMISSIONMISSING) {
	Intent intent = new Intent();
	intent.putExtra(EXTRA_ERROR_CODE, CaptureError.ESKT_BLUETOOTHPERMISSIONMISSING);
	intent.setClassName("com.socketmobile.companion", "com.socketmobile.companion.GetPermission");
	permissionActivityResultLauncher.launch(intent);
}
//Start activity result 
ActivityResultLauncher < Intent > permissionActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback < ActivityResult > () {
	@Override
	public void onActivityResult(ActivityResult result) {
		if (result.getResultCode() == Activity.RESULT_OK) {
			Intent data = result.getData();
			int permissionResult = data.getIntExtra(Permissions.EXTRA_GRANT_RESULT, PackageManager.PERMISSION_DENIED);
			switch (permissionResult) {
				case PackageManager.PERMISSION_GRANTED:
					// Continue using the Capture SDK to scan barcodes 
					break;
				case PackageManager.PERMISSION_DENIED:
					// Notify user that permission is required to use bluetooth scanner 
					break;
			}
		}
	}
});
    

The updated Companion and SDK are scheduled to be released around mid-March. We have a Beta version ready for test upon request. If you have any concerns or questions, please reach out via the normal developer support email or by using the feedback form.

Resources to help you choose