LINK OS - XAMARIN ANDROID

I haven't found out how to get a bluetooth connection to the printer working through Android. I pair to the printer but through code it will not even create the connection to be able to call .connect(). I have tried on a TC75 & Honeywell ScanPal EDA70. I see the bluetooth mac address in printer menu and pass it to the ConnectionBuilder.Current.Build("BT:" + address); But it still says Zebra.Sdk.Comm.ConnectionException: Could not open connection string "BT:F0:45:DA:AA:6F:2A". I have enabled all 3 bluetooth privileges in the manifest BLUETOOTH, BLUETOOTH_ADMIN, BLUETOOTH_PRIVILEGED. Using Zebra ZD620 and TC75 and they don't work connecting to each other. I can print using an IP Address and port, but if I try with bluetooth. NOTHING WORKS. Bluetooth paired to device also. Using Xamarin Android and VS 2017 15.7.4. I have also tried the developer demos and they fail to find the printer, although the Zebra Printer Setup Android App CAN connect and pair to it, as well as print a test page. Any help is appreciated. This doesn't find the printer... No discovered devices 0 even though the printer is paired to the device? GitHub - Zebra/LinkOS-Xamarin-Samples at ZSDK_DevDemos

            string address = "BT:F0:45:DA:AA:6F:2A"; <-- the address in the bluetooth settings on printer

                if ((connection == null) || (!connection.IsConnected))

                {

                    // Instantiate a Bluetooth connection

                    connection = LinkOS.Plugin.ConnectionBuilder.Current.Build(address); <---- Fails here with error could not open connection string

                    connection.Open();

                }

Mike Fielden
Is this the only place to get

Is this the only place to get any help with these devices?? Seems pretty empty of responses from my perspective. We may have to return our devices and go somewhere else if I can't get this figured out in the next day or so. I'm not sure why there is no response?

This should be a simple bluetooth connection between two devices, I've used multiple versions of the LINK OS Xamarin SDK as well as downloaded multiple demo applications from your github and forums. My code is almost exactly like everyone else and it doesn't look like the thousands of dollars of equipment we have can even connect together through the given development api's. I'm also the one that had to call Zebra and let them know their "Developer Portal" website was BROKEN for the last week because the menu items were all merged together.... This is starting to get very frustrating...

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
Hi Mike,For Bluetooth

Hi Mike,

For Bluetooth connection issues, I can give you a few things to try, but your code looks fine.

The first thing I'm going to recommend is to make sure the Bluetooth is setup right on the printer.  The Xamarin SDK only handles BT Classic, not BTLE.  I would make sure to use the Setup Utility to set the Bluetooth connection on the printer to Classic.  The Setup can use BTLE as well as classic, so it may still work even if the printer is set to BTLE.

You might also try pre-pairing the printer in the Android settings to make sure you can. 

Any time you have an issue for immediate support, you can contact Zebra Technical Support.  Also, Sorry about the site issues last week.  

Let us know what you find with these things to try,

- Robin

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Mike Fielden
Unfortunately, I have done

Unfortunately, I have done every bit of this. The Bluetooth is paired (not connected) there is no "connected" state, to the Android device, the setup utility has set the printer to Classic only instead of Classic & Low Energy (I've tried just about every variation over the past days).

I created new project with basically just this:

private void Print()

        {

            string address = "BT:F0:45:DA:AA:6F:2A";

            IConnection connection =  null;

            try

            {

                if ((connection == null) || (!connection.IsConnected))

                {

                    connection = LinkOS.Plugin.ConnectionBuilder.Current.Build(address); <<< ISSUE HERE

                    connection.Open();

                }

            }

            catch (System.Exception ex)

            {

                throw ex;

            }

        }

Same issue, fails to connect, this is the exact address on the Bluetooth Setup screen on the printer. Any additional ideas? I've tried talking to support, they teamviewer remoted into the printer and set it to factory defaults and played around with it and had me print using the Zebra Printer Setup Utility on the device and said if it prints from there, there is nothing else they can do.

Here is the Android Manifest for permissions:

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

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

          android:versionCode="1"

          android:versionName="1.0"

          package="TestPrint.TestPrint">

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

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

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

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

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

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

  <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.WRITE_EXTERNAL_STORAGE" />

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

  <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_WIFI_STATE" />

  <uses-feature android:name="android.hardware.usb.host" />

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

  </application>

</manifest>

From Printer (^XA^HZA^XZ)

<BLUETOOTH>

<FIRMWARE>1.4.1.0</FIRMWARE>

<DATE>05/25/2016</DATE>

<DISCOVERABLE BOOL='Y,N'>Y</DISCOVERABLE>

<RADIO-VERSION>4.0</RADIO-VERSION>

<ENABLED BOOL='Y,N'>Y</ENABLED>

<MAC-ADDRESS>F0:45:DA:AA:6F:2A</MAC-ADDRESS>

<FRIENDLY-NAME>Zebra</FRIENDLY-NAME>

<CONNECTED BOOL='Y,N'>Y</CONNECTED>

<MIN-SECURITY-MODE>1</MIN-SECURITY-MODE>

<CONN-SECURITY-MODE>nc</CONN-SECURITY-MODE>

</BLUETOOTH>

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
Hi Mike,I don't think it's an

Hi Mike,

I don't think it's an issue with your code.  You do have to use runtime permissions to discover printers (ACCESS_COURSE_LOCATION), but not to connect with a mac address.

It looks like the printer thinks it's already connected to something. 

<CONNECTED BOOL='Y,N'>Y</CONNECTED>

Did you try using an iPhone to work with the printer at some point?  Apple products are set to reconnect by default. As the printer can only have one connection at a time, it will block a new connection.  If so, un-pair it from the iPhone.

You can also try clearing the bonding cache. Send this to the printer using the Setup app.

{}{ "bluetooth.clear_bonding_cache":"now"}{"bluetooth.enable_reconnect":"off"}

Let me know if this helps,

Robin

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
Hi Mike, Forget that.  You

Hi Mike,

Forget that.  You are using the Android Printer Setup to get this info over Bluetooth, so you are connected. 

This is stumping me a bit as well.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
OK,Let's start from What

OK,

Let's start from What version of Android are you running on the TC75?  Which version of the Link-OS_Xamarin SDK are you using?  Have you had any issues with any other Zebra printers than the one ZD620?  I'm going to recreate your setup and see if there is a SDK/OS issue.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Mike Fielden
4.4.3 Android on the TC75.I

4.4.3 Android on the TC75.

I've tried all 3 versions of Link OS Xamarin SDK, currently using 1.2.

Haven't tried any other Zebra printers.

THANK YOU SO MUCH FOR YOUR HELP!! This is driving me insane ;-) I'm trying everything I can think of

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
No Problem    Is your app

No Problem    Is your app Xamarin Android or Forms? I'm going to copy this code into a blank one-page app and try it with the TC75 and ZD620 I have.  I'll post the project if it works, so you can see if my app version works on your system. 

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Mike Fielden
Xamarin Android but I'm sure

Xamarin Android but I'm sure I've tried forms as well and same issue.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
Hi Mike, sorry it took so

Hi Mike, sorry it took so long.  I hate updates. Anyway, I have the project attached.  I didn't see any issues. I changed the MAC address back to yours, but that is the only change since it ran on my system.

Please try this and see if it works or doesn't.  Either case will tell us something.

-Robin

Vote: 
Vote up!
Vote down!

Points: 1

You voted ‘up’


Mike Fielden
Goes into code for connection

Goes into code for connection builder and never returns... No exception, no getting to open connection, no printing.

07-12 15:31:58.613 D/Mono    (21608): Assembly Ref addref AndroidTest110718[0x6433fe68] -> LinkOS.Plugin[0x64347de8]: 2

07-12 15:31:58.613 D/Mono    (21608): Assembly Ref addref LinkOS.Plugin[0x64347de8] -> mscorlib[0x64258e00]: 15

07-12 15:31:58.613 D/Mono    (21608): Assembly Ref addref LinkOS.Plugin[0x64347de8] -> LinkOS.Plugin.Abstractions[0x64342f20]: 3

07-12 15:32:15.000 D/Mono    (21608): Assembly Ref addref LinkOS.Plugin[0x64347de8] -> ZSDK_ANDROIDX[0x6434fe48]: 2

07-12 15:32:15.140 W/BluetoothAdapter(21608): getBluetoothService() called with no BluetoothManagerCallback

07-12 15:32:15.150 D/BluetoothSocket(21608): connect(), SocketState: INIT, mPfd: {ParcelFileDescriptor: FileDescriptor[61]}

This is using factory default printer settings. Did you do anything special there? What version of Visual Studio are you using? I'm using the latest VS2017 version available.

I have also tried setting the printer to Classic Only as well as pre-paired to the printer vs not.

I know why my code goes straight to failing, it's because it is wrapped like this:

new Task(() =>

                {

                    Print();

                }).Start();

If you do this, when it goes to Connection Builder it immediately fails...

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Mike Fielden
Let me know if you come up

Let me know if you come up with anything else ​ I'm really anxious to get this working and appreciate the help so far. There is still just something missing/broken and I don't know what it is yet.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
Hi Mike,I'm also on VS2017

Hi Mike,

I'm also on VS2017 (see below)

On some systems, the ConnectionBuilder takes a long time to return.  Have you tried running it and just letting it sit for a few minutes?  I'm not say it's right, but it should return with something.  The fact that it shows the BluetoothSocket: connect() method in the log shows that it is trying to make the connection. 

My Visual Studio Configuration:

Microsoft Visual Studio Community 2017

Version 15.4.3

VisualStudio.15.Release/15.4.3+27004.2008

Microsoft .NET Framework

Version 4.7.03062

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Mike Fielden
I let it run for about 15

I let it run for about 15 minutes and it never came back using your example. I also know something has to be wrong because of the wrapping in a task functionality that was recommended here Is this not a valid way to do it?

1. When I wrap the print function in a task it fails every time.

2. When I use your example given that runs on the UI thread it never returns.

What about printer settings? Are you using factory default settings? Also, are you pre-pairing the device or no?

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
Hi Mike, I'm using factory

Hi Mike,

I'm using factory default settings but I am setting up the Bluetooth to be Classic.  Can you do me a favor and send me or attach a full configuration report?  To get it, connect the printer over USB to a computer and use the PC based Setup Utility - "Open Communication with Printer" to send:

{}{"allvalues":null}

You can save the returned data as a text file.

I want to make sure everything really is standard on your printer.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
I've used the app without

I've used the app without pairing and the pairing request came up.  I had to accept it, but the app then worked.  I also tried it pre-paired.  It worked as expected as well. 

As for wrapping it in a new thread, yes, that is the way to do it although I heard MS is now recommending not to use the Task class, but start a new Thread.  Guess I have to update the old app...

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Mike Fielden
Sorry I couldn't figure out

Sorry I couldn't figure out how to attach a file.

!

{"allvalues":

{"bluetooth.discoverable":"on",

"bluetooth.friendly_name":"Zebra",

"bluetooth.version":"1.4.1.0",

"bluetooth.date":"05/25/2016",

"bluetooth.local_name":"Zebra",

"bluetooth.address":"F0:45:DA:AA:6F:2A",

"bluetooth.bluetooth_pin":null,

"bluetooth.short_address":"F045DAAA6F2A",

"bluetooth.radio_version":"4.0",

"bluetooth.enable":"on",

"bluetooth.connected":"no",

"bluetooth.minimum_security_mode":"1",

"bluetooth.connected_security_mode":"nc",

"bluetooth.bonding":"on",

"bluetooth.clear_bonding_cache":null,

"bluetooth.enable_reconnect":"iOS_only",

"bluetooth.le.minimum_security":"none",

"bluetooth.le.controller_mode":"le",

"bluetooth.le.print_passkey":"off",

"bluetooth.json_config_channel_enable":"on",

"bluetooth.page_scan_window":"60",

"card.inserted":"Not Inserted",

"card.cisproc":"Processed",

"card.mfgid":"",

"card.cardid":"",

"card.fncode":"000c",

"card.idtext1":"",

"card.idtext2":"",

"card.idtext3":"",

"card.idtext4":"",

"card.fcrbase":"Not Detected",

"card.fcrlist":"NONE DETECTED",

"card.defcfg":"Not Detected",

"card.cor":"Not Present",

"card.mac_addr":"00:00:00:00:00:00",

"card.mac_raw":"000000000000",

"card.enable":"on",

"comm.baud":"9600",

"comm.data_bits":"8",

"comm.parity":"null",

"comm.stop_bits":"1",

"comm.dsr":"on",

"comm.handshake":"xon/xoff",

"comm.type":"auto",

"head.latch":"ok",

"head.resolution.in_dpi":"203",

"head.darkness_switch":"low",

"head.darkness_switch_enable":"on",

"ip.dhcp.vendor_class_id":"Zebra Technologies ZTC ZD620-203dpi ZPL",

"ip.dhcp.user_class_id":"",

"ip.dhcp.auto_provision_enable":"on",

"ip.dhcp.ntp.enable":"off",

"ip.dhcp.ntp.received_servers":"",

"ip.ftp.enable":"on",

"ip.ftp.execute_file":"on",

"ip.ftp.request_password":"no",

"ip.lpd.enable":"on",

"ip.tcp.enable":"on",

"ip.tcp.nagle_algorithm":"enabled",

"ip.udp.enable":"on",

"ip.http.enable":"on",

"ip.http.admin_name":"admin",

"ip.http.admin_password":null,

"ip.http.port":"80",

"ip.http.faq_url":"https://www.zebra.com/support.html",

"ip.http.custom_link_name":"",

"ip.http.custom_link_url":"",

"ip.smtp.enable":"on",

"ip.smtp.server_addr":"0.0.0.0",

"ip.smtp.domain":"ZBRPrintServer.com",

"ip.pop3.enable":"on",

"ip.pop3.print_headers":"off",

"ip.pop3.verbose_headers":"off",

"ip.pop3.print_body":"off",

"ip.pop3.save_attachments":"off",

"ip.pop3.poll":"240",

"ip.pop3.username":"",

"ip.pop3.password":null,

"ip.pop3.server_addr":"0.0.0.0",

"ip.pop3.print_attachments":"off",

"ip.snmp.enable":"on",

"ip.snmp.get_community_name":null,

"ip.snmp.set_community_name":null,

"ip.snmp.create_mib":null,

"ip.snmp.trap_community_name":"public",

"ip.telnet.enable":"on",

"ip.telnet.disconnect":null,

"ip.port":"6101",

"ip.remote":"",

"ip.ping_remote":null,

"ip.remote_port":"10013",

"ip.remote_autoconnect":"off",

"ip.mirror.auto":"off",

"ip.mirror.username":"user",

"ip.mirror.password":null,

"ip.mirror.server":"127.0.0.1",

"ip.mirror.path":"Zebra",

"ip.mirror.freq":"0",

"ip.mirror.fetch":null,

"ip.mirror.version":"Oct 20 2017 15:08:23",

"ip.mirror.freq_hours":"0",

"ip.mirror.error_retry":"0",

"ip.mirror.feedback.auto":"off",

"ip.mirror.feedback.path":"Zebra/feedback",

"ip.mirror.feedback.freq":"0",

"ip.mirror.feedback.odometer":"0",

"ip.mirror.success":"no",

"ip.mirror.success_time":"Jul 16 2018 17:28:16",

"ip.mirror.last_time":"Jul 16 2018 17:28:16",

"ip.mirror.last_error":"No Error",

"ip.mirror.mode":"ftp",

"ip.mirror.reset_delay":"5",

"ip.mirror.interface":"both",

"ip.mirror.appl_path":"",

"ip.ping_len":"56",

"ip.discovery.enable":"on",

"ip.discovery.port":"4201",

"ip.roam_packet":"on",

"ip.primary_network":"2",

"ip.active_network":"unknown",

"ip.ntp.enable":"off",

"ip.ntp.servers":"",

"ip.ntp.log":"",

"ip.port_alternate":"9100",

"ip.port_json_config":"9200",

"ip.port_single_conn":"9300",

"ip.port_single_conn_idle_timeout":"180",

"media.status":"ok",

"media.sense_mode":"gap",

"media.tof":"0",

"media.type":"label",

"media.bar_location":"back",

"media.printmode":"tear off",

"media.speed":"6.0",

"media.thermal_mode":"DT",

"media.cut_now":null,

"media.dynamic_length_calibration":"on",

"media.part_number":"",

"media.serial_number":"",

"sensor.paper_supply":"ok",

"sensor.peeler":"clear",

"sensor.recall_factory_cal":null,

"sensor.peeler_present":"Not Present",

"sensor.peel.cur":"0",

"sensor.gap.thold":"108",

"sensor.gap.cur":"56",

"sensor.gap.ppr_out_thold":"245",

"sensor.back_bar.thold":"179",

"sensor.back_bar.cur":"255",

"sensor.back_bar.ppr_out_thold":"10",

"sensor.head.temp":"125",

"sensor.head.temp_celsius":"26",

"sensor.head.temp_avg":"26",

"wlan.operating_mode":"infrastructure",

"wlan.essid":"125",

"wlan.current_essid":"",

"wlan.station_name":"ZEBRA",

"wlan.current_tx_rate":"1.0",

"wlan.associated":"no",

"wlan.power_save":"off",

"wlan.auth_type":"open",

"wlan.preamble":"long",

"wlan.bssid":"00:00:00:00:00:00",

"wlan.firmware_version":"00.00.00",

"wlan.signal_strength":"0",

"wlan.poor_signal_threshold":"0",

"wlan.international_mode":"off",

"wlan.roam.signal":"40",

"wlan.roam.interval":"5",

"wlan.roam.interchannel_delay":"400",

"wlan.roam.max_chan_scan_time":"100",

"wlan.roam.rssi":"80",

"wlan.roam.max_fail":"10",

"wlan.roam.monitor":"off",

"wlan.channel_mask":"0x7FF",

"wlan.channel":"",

"wlan.wpa.psk":null,

"wlan.wpa.wpa_version":"none",

"wlan.wpa.groupkey_ciphersuite":"NONE",

"wlan.wpa.pairwise_ciphersuite":"NONE",

"wlan.wpa.timecheck":"yes",

"wlan.8021x.ttls_tunnel":"pap",

"wlan.8021x.peap.validate_server_certificate":"on",

"wlan.8021x.peap.anonymous_identity":"",

"wlan.adhocchannel":"1",

"wlan.adhocautomode":"off",

"wlan.enable":"on",

"wlan.encryption_optional":"no",

"wlan.secure_ssid":"off",

"wlan.ip.addr":"0.0.0.0",

"wlan.ip.netmask":"255.255.255.0",

"wlan.ip.gateway":"0.0.0.0",

"wlan.ip.arp_interval":"0",

"wlan.ip.dhcp.lease.length":"0",

"wlan.ip.dhcp.lease.time_left":"0",

"wlan.ip.dhcp.lease.server":"0.0.0.0",

"wlan.ip.dhcp.lease.last_attempt":"0",

"wlan.ip.dhcp.cache_ip":"off",

"wlan.ip.dhcp.cid_type":"1",

"wlan.ip.dhcp.cid_prefix":"",

"wlan.ip.dhcp.cid_enable":"on",

"wlan.ip.dhcp.cid_suffix":"000000000000",

"wlan.ip.dhcp.cid_all":"000000000000",

"wlan.ip.dhcp.option12":"on",

"wlan.ip.dhcp.option12_format":"",

"wlan.ip.dhcp.option12_value":"Zebra",

"wlan.ip.dhcp.arp_verify":"on",

"wlan.ip.protocol":"all",

"wlan.ip.default_addr_enable":"on",

"wlan.ip.timeout.enable":"on",

"wlan.ip.timeout.value":"300",

"wlan.ip.dns.domain":"",

"wlan.ip.dns.servers":"",

"wlan.ip.wins.addr":"0.0.0.0",

"wlan.ip.wins.permanent_source":"off",

"wlan.keep_alive.enable":"on",

"wlan.keep_alive.timeout":"15",

"wlan.wep.index":"1",

"wlan.wep.optional":"no",

"wlan.wep.key_format":"hex",

"wlan.wep.key1":null,

"wlan.wep.key2":null,

"wlan.wep.key3":null,

"wlan.wep.key4":null,

"wlan.security":"none",

"wlan.private_key_password":null,

"wlan.username":"",

"wlan.password":null,

"wlan.mac_addr":"00:00:00:00:00:00",

"wlan.mac_raw":"000000000000",

"wlan.region_code":"all",

"wlan.country_code":"all",

"wlan.user_channel_list":"1,2,3,4,5,6,7,8,9,10,11",

"wlan.allowed_band":"2.4",

"wlan.permitted_channels":"1,2,3,4,5,6,7,8,9,10,11",

"wlan.active_channels":"1,2,3,4,5,6,7,8,9,10,11",

"wlan.11d.enable":"off",

"wlan.11d.current_country":"not available",

"wlan.11d.discovered_channels":"not available",

"wlan.authenticated":"no",

"wlan.available":"no",

"wlan.authentication_error":"none",

"wlan.regulatory_data_version":"1.29",

"wlan.pmf":"enabled",

"display.contrast":"10",

"display.backlight":"on",

"display.orientation":"normal",

"display.backlight_on_time":"600",

"display.suppress_all_alerts":"off",

"display.status_bar_suppress":"off",

"display.language":"english",

"display.load_card":"Z:INDEXCOLOR.WML",

"display.root_wml":"INDEXCOLOR.WML",

"display.previous_displayed_card":"Z:INDEXCOLOR.WML#main",

"display.password.current":"1234",

"display.password.input":null,

"display.password.length":"4",

"display.password.type":"numeric",

"display.password.level":"none",

"display.batch_counter":"disabled",

"memory.flash_size":"67108864",

"memory.ram_size":"8388608",

"memory.flash_free":"66939392",

"memory.ram_free":"8365056",

"power.power_on_mode":"manual",

"power.hold_cur":"off",

"power.sleep.enable":"on",

"power.sleep.now":null,

"power.sleep.timeout":"0",

"file.type":"",

"file.delete":null,

"file.print":null,

"file.run":null,

"file.rename":null,

"file.append":null,

"file.dir_format":"zpl",

"file.capture_response.begin":null,

"file.capture_response.end":null,

"file.capture_response.destination":"printer_file",

"odometer.user_label_count":"0",

"odometer.user_label_count1":"21",

"odometer.user_label_count2":"21",

"odometer.total_label_count":"21",

"odometer.total_print_length":"493",

"odometer.latch_open_count":"15",

"odometer.label_dot_length":"0",

"odometer.media_marker_count":"33",

"odometer.media_marker_count1":"493",

"odometer.media_marker_count2":"493",

"odometer.headclean":"493",

"odometer.headnew":"493",

"odometer.total_cuts":"0",

"odometer.user_total_cuts":"0",

"appl.date":"10/20/2017",

"appl.name":"V84.20.07Z",

"appl.version":"8420",

"appl.bootblock":"10.5.4",

"appl.link_os_version":"4.0",

"device.reset":null,

"device.restore_defaults":null,

"device.prompted_network_reset":null,

"device.sensor_profile":"print",

"device.friendly_name":"Zebra",

"device.company_name":"Zebra Technologies",

"device.product_name":"ZD620",

"device.product_name_submodel":"none",

"device.company_contact":"",

"device.location":"",

"device.position.latitude":"0.000000",

"device.position.longitude":"0.000000",

"device.position.altitude":"0.000000",

"device.position.accuracy":"0.000000",

"device.status":"ready",

"device.idle_display_format":"fw version",

"device.idle_display_value":"V84.20.07Z",

"device.sensor_select":"transmissive",

"device.jobs_print":"0",

"device.languages":"epl_zpl",

"device.cph_enable":"off",

"device.cph_interval":"0",

"device.macro_get":"",

"device.user_p1":"",

"device.user_p2":"",

"device.uptime":"00 days 03 hours 16 mins 21 secs",

"device.local_menu_mode":"off",

"device.printhead.serialnum":"No Serial Number Available",

"device.printhead.resolution":"8.0",

"device.frontpanel.line1":"",

"device.frontpanel.line2":"",

"device.frontpanel.line3":"",

"device.frontpanel.line4":"",

"device.frontpanel.key_press":null,

"device.unique_id":"D3J180401567",

"device.xml.enable":"on",

"device.ff_disable":"off",

"device.pnp_option":"zpl",

"device.pnp_string":"MANUFACTURER:Zebra Technologies ;COMMAND SET:ZPL;MODEL:ZTC ZD620-203dpi ZPL;CLASS:PRINTER;OPTIONS:XML;",

"device.download_connection_timeout":"0",

"device.print_reprogram_2key":"on",

"device.epl_legacy_mode":"off",

"device.command_override.add":null,

"device.command_override.clear":null,

"device.command_override.list":"",

"device.command_override.active":"yes",

"device.host_identification":"ZD620-200dpi,V84.20.07Z,8,8192KB",

"device.host_status":"030,0,0,0626,000,0,0,0,000,0,0,0\r\n000,0,0,0,0,2,6,0,00000000,1,000\r\n1234,0",

"device.pause":null,

"device.unpause":null,

"device.serial_numbers.mlb":"GGB031278",

"device.serial_numbers.mlb_date":"01/22/2018",

"device.serial_numbers.option_board":"GFP016207",

"device.serial_numbers.option_board_date":"01/03/2018",

"device.serial_numbers.control_panel":"GEX007603",

"device.serial_numbers.control_panel_date":"12/28/2017",

"device.serial_numbers.cutter":"",

"device.serial_numbers.cutter_date":"",

"device.cutter_installed":"no",

"device.bluetooth_installed":"yes",

"device.print_out_report":null,

"device.diagnostic_print":"disabled",

"device.job_log.total_jobs":"0",

"device.internal_wired_setting_location":"printserver",

"device.print_geometry_revision":"0",

"device.user_vars.create":null,

"device.user_vars.set_range":null,

"device.slot_1":"wired and serial",

"device.syslog.enable":"off",

"device.syslog.configuration":"",

"device.syslog.save_local_file":"no",

"device.syslog.log_max_file_size":"10000",

"device.syslog.entries":"",

"device.syslog.clear_log":null,

"device.feature.mfi":"not present",

"device.feature.mcr":"not available",

"device.feature.bluetooth_le":"present",

"device.feature.ribbon_cartridge":"not present",

"device.feature.lock":"not present",

"device.feature.802_11ac":"not present",

"device.feature.applicator":"not available",

"device.feature.lighted_arrows":"not available",

"device.feature.head_element_test":"present",

"device.configuration_number":"ZD62142-D01F00EZ",

"device.pmcu.revision":"8",

"device.pmcu.desired_revision":"8",

"device.mcu_communication.revision":"15",

"device.mcu_communication.desired_revision":"15",

"device.mcu_cutter.revision":"",

"device.mcu_cutter.desired_revision":"",

"device.current_configuration_number":"ZD62142-D01F00EZ",

"device.locked":"no",

"device.set_clock_to_build_date":"enabled",

"input.capture":"off",

"print.tone":"10.0",

"print.tone_format":"zpl",

"print.tone_zpl":"10.0",

"print.troubleshooting_label_choices":"darkness",

"print.troubleshooting_label_print":null,

"rtc.time":"20:44:16",

"rtc.date":"07-16-2018",

"rtc.timezone":"UTC00",

"rtc.exists":"yes",

"usb.device.vendor_id":"0x0A5F",

"usb.device.product_id":"0x0141",

"usb.device.device_version":"1.1",

"usb.device.product_string":"ZTC ZD620-203dpi ZPL",

"usb.device.manufacturer_string":"Zebra Technologies",

"usb.device.serial_string":"D3J180401567",

"usb.device.device_id_string":"MANUFACTURER:Zebra Technologies ;COMMAND SET:ZPL;MODEL:ZTC ZD620-203dpi ZPL;CLASS:PRINTER;OPTIONS:XML;",

"usb.device.device_unique_id":"on",

"usb.connected":"yes",

"usb.halt":"no",

"usb.host.mass_storage_count":"0",

"usb.host.hid_count":"0",

"usb.host.lock_out":"off",

"usb.host.config_info_to_usb":null,

"usb.host.read_list":"uninitialized",

"usb.host.read_list_print_delay":"0",

"usb.host.write_list":"uninitialized",

"usb.host.template_list":"uninitialized",

"usb.host.template_print_amount":"1",

"usb.host.fn_field_list":"uninitialized",

"usb.host.fn_last_field":"no",

"usb.host.fn_field_data":"",

"usb.host.keyboard_input":"on",

"usb.mirror.enable":"on",

"usb.mirror.auto":"on",

"usb.mirror.path":"Zebra",

"usb.mirror.fetch":null,

"usb.mirror.error_retry":"0",

"usb.mirror.feedback.auto":"off",

"usb.mirror.feedback.path":"Zebra/feedback",

"usb.mirror.feedback.odometer":"0",

"usb.mirror.success":"no",

"usb.mirror.success_time":"",

"usb.mirror.last_time":"",

"usb.mirror.last_error":"No Error",

"usb.mirror.reset_delay":"5",

"usb.mirror.appl_path":"",

"log.reboot.code":"7",

"log.reboot.reason":"Idle timeout",

"log.reboot.codes":"7199b1bb1111111117711911bbb1bb11",

"netmanage.type":"none",

"netmanage.status_code":"0",

"netmanage.state_code":"0",

"netmanage.error_code":"0",

"netmanage.avalanche.model_name":"",

"netmanage.avalanche.interval":"60000",

"netmanage.avalanche.startup_update":"off",

"netmanage.avalanche.interval_update":"off",

"netmanage.avalanche.agent_addr":"0.0.0.0",

"netmanage.avalanche.available_agent":"0.0.0.0",

"netmanage.avalanche.available_port":"1",

"netmanage.avalanche.encryption_type":"0",

"netmanage.avalanche.udp_timeout":"3000",

"netmanage.avalanche.tcp_connection_timeout":"3000",

"netmanage.avalanche.terminal_id":"0",

"netmanage.avalanche.realtime_update_int":"300",

"netmanage.avalanche.text_msg.print":"off",

"netmanage.avalanche.text_msg.display":"off",

"netmanage.avalanche.text_msg.beep":"off",

"netmanage.avalanche.set_property":null,

"zbi.revision":"2.1",

"zbi.state":"off",

"zbi.last_error":"",

"zbi.program_list":"",

"zbi.start_info.file_name":"*:\\.BAZ",

"zbi.start_info.memory_alloc":"0",

"zbi.start_info.execute":null,

"zbi.control.terminate":null,

"zbi.control.run":null,

"zbi.control.break":null,

"zbi.control.restart":null,

"zbi.control.step":null,

"zbi.control.variable_name":"",

"zbi.control.variable_value":"",

"zbi.control.add_breakpoint":null,

"zbi.control.delete_breakpoint":null,

"zbi.control.clear_breakpoints":null,

"zbi.control.line_number":"0",

"zbi.reseller_key":null,

"zbi.key":"DISABLED ",

"zbi.running_program_name":"",

"zbi.key_version":"1.1",

"zpl.calibrate":null,

"zpl.relative_darkness":"0",

"zpl.save":null,

"zpl.label_length":"626",

"zpl.left_position":"0",

"zpl.format_prefix":"5E",

"zpl.command_prefix":"7E",

"zpl.delimiter":"2C",

"zpl.zpl_mode":"zpl II",

"zpl.system_status":"0,0,00000000,00000000,0,00000000,00000000",

"zpl.system_error":"0,0,00000000,00000000",

"zpl.no_errors_boot_done":"yes",

"zpl.print_orientation":"nor",

"zpl.label_top":"0",

"internal_wired.ip.addr":"0.0.0.0",

"internal_wired.ip.netmask":"255.255.255.0",

"internal_wired.ip.gateway":"0.0.0.0",

"internal_wired.ip.arp_interval":"0",

"internal_wired.ip.dhcp.lease.length":"0",

"internal_wired.ip.dhcp.lease.time_left":"0",

"internal_wired.ip.dhcp.lease.server":"0.0.0.0",

"internal_wired.ip.dhcp.lease.last_attempt":"0",

"internal_wired.ip.dhcp.cache_ip":"off",

"internal_wired.ip.dhcp.cid_type":"1",

"internal_wired.ip.dhcp.cid_prefix":"",

"internal_wired.ip.dhcp.cid_enable":"on",

"internal_wired.ip.dhcp.cid_suffix":"00074D81C8A7",

"internal_wired.ip.dhcp.cid_all":"00074D81C8A7",

"internal_wired.ip.dhcp.option12":"on",

"internal_wired.ip.dhcp.option12_format":"",

"internal_wired.ip.dhcp.option12_value":"Zebra",

"internal_wired.ip.dhcp.arp_verify":"on",

"internal_wired.ip.protocol":"all",

"internal_wired.ip.default_addr_enable":"on",

"internal_wired.ip.timeout.enable":"on",

"internal_wired.ip.timeout.value":"300",

"internal_wired.ip.dns.domain":"",

"internal_wired.ip.dns.servers":"",

"internal_wired.ip.wins.addr":"0.0.0.0",

"internal_wired.ip.wins.permanent_source":"off",

"internal_wired.mac_addr":"00:07:4D:81:C8:A7",

"internal_wired.mac_raw":"00074D81C8A7",

"internal_wired.auto_switchover":"on",

"internal_wired.installed":"yes",

"internal_wired.link":"no",

"internal_wired.activity_led":"blink",

"interface.network.settings_require_reset":"no",

"interface.network.active.printserver":"unknown",

"interface.network.active.ip_addr":"0.0.0.0",

"interface.network.active.netmask":"0.0.0.0",

"interface.network.active.gateway":"0.0.0.0",

"interface.network.active.protocol":"all",

"interface.network.active.default_addr_enable":"on",

"interface.network.active.wins_addr":"0.0.0.0",

"interface.network.active.arp_interval":"0",

"interface.network.active.mac_addr":"00:00:00:00:00:00",

"interface.network.active.mac_raw":"000000000000",

"interface.network.active.server_protocol":"",

"interface.network.active.server_address":"0.0.0.0",

"interface.network.active.dhcp_received_host_name":"",

"interface.network.active.cable_type":"unknown",

"interface.network.active.speed":"0",

"interface.network.active.rx_packets":"",

"interface.network.active.rx_errors":"",

"interface.network.active.tx_packets":"",

"interface.network.active.tx_errors":"",

"interface.network.active.protocol_error":"None",

"cutter.clean_cutter":"on",

"apl.enable":"none",

"apl.framework_version":"1.3",

"apl.version":"none",

"apl.o.graphics_byte_width":"",

"formats.cancel_all":null,

"ezpl.print_width":"832",

"ezpl.media_type":"auto_detect",

"ezpl.print_method":"direct thermal",

"ezpl.tear_off":"0",

"ezpl.print_mode":"tear off",

"ezpl.reprint_mode":"off",

"ezpl.head_close_action":"feed",

"ezpl.power_up_action":"no motion",

"ezpl.label_length_max":"39",

"ezpl.manual_calibration":"complete",

"ezpl.label_sensor":"245",

"ezpl.take_label":"128",

"ezpl.restore_defaults":null,

"alerts.configured":"COLD START,SNMP,Y,N,255.255.255.255,162,N",

"alerts.add":null,

"alerts.conditions":"ALL MESSAGES, PAPER OUT, RIBBON OUT, HEAD TOO HOT, HEAD COLD, HEAD OPEN, SUPPLY TOO HOT, RIBBON IN, REWIND, CUTTER JAMMED, PRINTER PAUSED, PQ JOB COMPLETED, LABEL READY, HEAD ELEMENT BAD, BASIC RUNTIME, BASIC FORCED, POWER ON, CLEAN PRINTHEAD, MEDIA LOW, RIBBON LOW, REPLACE HEAD, BATTERY LOW, RFID ERROR, MOTOR OVERTEMP, PRINTHEAD SHUTDOWN, COLD START, SGD SET, SHUTTING DOWN, RESTARTING, NO READER PRESENT, THERMISTOR FAULT, INVALID HEAD, COUNTRY CODE ERROR, MCR RESULT READY, PMCU DOWNLOAD, RIBBON AUTH ERROR, ODOMETER TRIGGERED, COUNTRY CODE",

"alerts.destinations":"SERIAL, PARALLEL, E-MAIL, TCP, UDP, SNMP, USB, HTTP-POST, BLUETOOTH, SDK",

"alerts.tracked_settings.zbi_notified":"",

"alerts.tracked_settings.log_tracked":"",

"alerts.tracked_settings.max_log_entries":"100",

"alerts.tracked_settings.clear_log":null,

"alerts.http.proxy":"",

"alerts.http.logging.entries":"",

"alerts.http.logging.max_entries":"0",

"alerts.http.logging.clear":null,

"alerts.http.authentication.add":null,

"alerts.http.authentication.remove":null,

"alerts.http.authentication.entries":"",

"weblink.enable":"off",

"weblink.printer_reset_required":"no",

"weblink.restore_defaults":null,

"weblink.logging.entries":"",

"weblink.logging.max_entries":"0",

"weblink.logging.clear":null,

"weblink.ip.conn1.location":"",

"weblink.ip.conn1.retry_interval":"10",

"weblink.ip.conn1.proxy":"",

"weblink.ip.conn1.maximum_simultaneous_connections":"10",

"weblink.ip.conn1.authentication.add":null,

"weblink.ip.conn1.authentication.remove":null,

"weblink.ip.conn1.authentication.entries":"",

"weblink.ip.conn1.test.location":"http://www.zebra.com/apps/linktest",

"weblink.ip.conn1.test.test_on":"failure",

"weblink.ip.conn1.test.retry_interval":"900",

"weblink.ip.conn1.num_connections":"0",

"weblink.ip.conn2.location":"",

"weblink.ip.conn2.retry_interval":"10",

"weblink.ip.conn2.proxy":"",

"weblink.ip.conn2.maximum_simultaneous_connections":"10",

"weblink.ip.conn2.authentication.add":null,

"weblink.ip.conn2.authentication.remove":null,

"weblink.ip.conn2.authentication.entries":"",

"weblink.ip.conn2.test.location":"http://www.zebra.com/apps/linktest",

"weblink.ip.conn2.test.test_on":"failure",

"weblink.ip.conn2.test.retry_interval":"900",

"weblink.ip.conn2.num_connections":"0",

"weblink.cloud_connect.enable":"on",

"weblink.cloud_connect.connect":null,

"weblink.cloud_connect.status":"NOT ACTIVE",

"weblink.cloud_connect.connection_key":"0000000000",

"weblink.cloud_connect.configuration_key":"0000000000",

"weblink.cloud_connect.configuration_confirmation":"none",

"weblink.zebra_connector.version":"0.07",

"weblink.zebra_connector.enable":"on",

"weblink.zebra_connector.proxy":"",

"weblink.zebra_connector.authentication.add":null,

"weblink.zebra_connector.authentication.remove":null,

"weblink.zebra_connector.authentication.entries":"",

"capture.channel1.port":"off",

"capture.channel1.delimiter":"\n",

"capture.channel1.max_length":"1000",

"capture.channel1.count":"0",

"ribbon.part_number":"",

"ribbon.serial_number":"",

"ribbon.ribbon_low.warning":"10",

"ribbon.cartridge.inserted":"no"}}

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
Also - sorry for the extra

Also - sorry for the extra posts, Have you tried the updated, more complete, demo sample on GitHub - Zebra/LinkOS-Xamarin-Samples at ZSDK_DevDemos ?

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Mike Fielden
I have tried the demo, it

I have tried the demo, it doesn't even discover/find the printer in any condition.

Also, even setting it to classic only, it does the same thing, nothing, for me

Even uninstalled VS 2017 15.7.5 and downgraded to 15.4.5 and still doesn't work. I can't figure out how to get the version you have as it's a pretty old version. I just happened to have 15.4.5 installer sitting around.

Is there any way you could test your code on a more up to date VS version and see if breaks due to Mono or some other VS changes so we knew if it was a VS 2017 version issue.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
Sure, I'll update my system.

Sure, I'll update my system.

Based on your configuration, please send the following command to the printer and try again. It seems your printer is still set to BTLE only mode.

{}{"bluetooth.le.controller_mode":"classic"}

I may not get back to you until tomorrow afternoon due to some meetings. 

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Mike Fielden
When I send that to the

When I send that to the printer, it responds:

{"bluetooth.le.controller_mode":"le"}

https://gyazo.com/aea4e95aef71cbcdbf11d13d0e5aa66a

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
Hi Mike, I feel really stupid

Hi Mike, I feel really stupid and I'm going to apologize right now.

Based on your last comment - I din't realize but I just looked it up. The basic ZD620 printer only has BTLE, and is not capable of classic.  I checked your part number, and you have that basic configuration.  My borrowed ZD620 printer has a more advanced configuration with full radios so I didn't notice.

I'm afraid this means the Xamarin SDK we have available will not work with that specific printer configuration. 

We do have an Android SDK in Java that supports BTLE.  For Xamarin support, you would have to create a binding library to wrap it.  Alternatively, you could use the basic APIs for BTLE with Xamarin, but you would miss out on a few of our helper APIs for image converting and status checking. 

The downside is that BTLE communications are slow and sending large ZPL and image files might take much longer to print. 

I really am sorry for missing this and wasting both our time.  I will help in whatever way I can. 

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Mike Fielden
Here is an image of the MAC

Here is an image of the MAC Address to verify

Screenshot - a22f77e03c7eceb5be775a7f2b61712a - Gyazo

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Ruan Silvis
Follow up

Hi,

I was only able to see that comments after I posted my own comment, so please see updated reply.
So I had the same issue where I am able to connect via Bluetooth to the Printer Setup Application on Android and even print test labels, but get the same error as above when trying to call ConnectionBuilder.Current.Build(address).

It seems that the ZD410 unit also only has BLE and not classic Bluetooth.

Do you perhaps have a working example on how to connect to a BLE device in c# Xamerin.Android?

Regards

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Log in to post comments