7 Replies Latest reply on Aug 15, 2018 1:14 PM by Peter Arcuri

    TC70 device is not supported on the Play store

    Mike Bedford

      Hello all, I have two devices that I am developing an app (using Xamarin), one is the TC75X and the other is the TC70X. I followed the EMDK samples and have these two lines in my app manifest.


      <uses-permission android:name="com.symbol.emdk.permission.EMDK" />

      <uses-library android:name="com.symbol.emdk" />


      As you can see, I don't have those marked as required.


      The issue is, I can install on the TC75X device but not the TC70X. I get ‘Your device isn’t compatible with this version’


      I noticed that when I submit an app release via the Play store console, Google automatically says my app supports only 4 devices.



      I did not select these four, it found them for me automatically. I believe it is narrowed down to only these four based on the EMDK library that is needed. So, I investigated that a bit further and found this for the TC75X



      Notice the TC75X lists the com.symbol.emdk library as supported. However, look at the TC70X


      So, I believe this clearly explains why I can only support 4 devices and the TC70X is not one of them. However, I don't know how to fix it. I cannot see a way to force the TC70X in my list, it is greyed out, like many others and I cannot do anything with them.



      Here are all 17 of the devices, you can see all but four are greyed out and say not supported. I don't care about many of these but I do care about the TC70X.


      Anybody know how to get around this? How did Google get the wrong information about these devices and how is that fixed as it is the root cause of the issue.


      Another related question, how can I support and test on devices I know do not have an EMDK? For example, I have the two lines above in my manifest for the Zebra devices but what if I want to load my app on my Samsung device, which I know does not have support for the EMDK and simply just not try to load/use any of the barcode scanner/EMDK components when I am loading on this device or any other non-EMDK device?





        • Re: TC70 device is not supported on the Play store
          Darryn Campbell

          Hi Mike,


          All those devices which are not grayed out are WAN devices which contain a GPS chip, I suspect somewhere in your manifest you are saying that GPS or WAN is required, can you check that?  Or share your manifest here?  I haven't heard of a device in the Play Store not being able to support the EMDK before.


          Regarding the second question, most customers put the EMDK library behind a sort of proxy, I have an example from one of my own projects here: WakeLock_WifiLock_Exerciser/EMDKProxy.java at master · darryncampbell/WakeLock_WifiLock_Exerciser · GitHub


          If you are not too far in your development, you may choose to use DataWedge rather than the EMDK & there is a tutorial here if that appeals: Tutorial: Scanning with DataWedge and Xamarin .  With DataWedge you would not have had either these issues as it has no library dependencies so your app could have been installed on any Android device.

            • Re: TC70 device is not supported on the Play store
              Mike Bedford

              Hello Darryn,


              Thank you for the response. I agree with you that there seems to be some commonality with the four devices with regard to GPS and WAN. However, I don't think I am requiring those features. I do have permissions listed for accessing location and network state but I don't see how those can cause this issue? Below is my complete manifest for you to review. Furthermore, to prove my theory is correct and there is something wrong with the device descriptions in the play store, look at my two screen shots I attached that show the TC70X device details and the TC75X device details. These are taken from the Play store details/decriptions of each device. You can see in the shared libraries section that the TC75X has "com.symbol.emdk" reference where the TC70X does not. I believe this is actually causing the problem.


              <?xml version="1.0" encoding="utf-8"?>

              <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="2" android:versionName="1.2" package="com.OdenIndustries.PacTracMobile" android:installLocation="auto">

              <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="27" />

              <uses-permission android:name="com.symbol.emdk.permission.EMDK" />

              <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

              <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

              <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

              <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

              <uses-permission android:name="android.permission.BLUETOOTH" />

              <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

              <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />

              <uses-permission android:name="android.permission.CAMERA" />

              <uses-permission android:name="android.permission.FLASHLIGHT" />

              <uses-permission android:name="android.permission.INTERNET" />

              <uses-permission android:name="android.permission.NFC" />

              <uses-permission android:name="android.permission.SEND_SMS" />

              <uses-permission android:name="android.permission.WRITE_SETTINGS" />

              <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

              <application android:allowBackup="true" android:icon="@drawable/mainapplogo" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">

              <uses-library android:name="com.symbol.emdk" />




              Thank you for your sample, I will look into that.


              I did look at data wedge a few years back but we opted to not go that route because one, we did not want to rely on another app in order for our app to work properly, it adds another layer and point of failure (plus data wedge had to be configured for what we wanted to do and this caused additional confusion at time). Second reason, data wedge does not give us enough control over the barcode scanner. For example, if we want to have an event that raises when we get a scan so we can pre-process and at times, pause of shut down the barcode scanner, we cannot do those things unless we are using the EMDK.