This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Android 4.3 App support for SensorTag Released

Other Parts Discussed in Thread: CC2541, CC2540

Anyone having any luck with the new Android App?

I am trying it on a Nexus 4. I can see the SensorTag but when I try to view data the app  crashes... (very)early days yet ;)

Dale

  • I ran it on Nexus 7 (2012) with 4.3 It also crashed when I tried to access the "services".  

  • I'm seeing the same thing. I am working on a project to connect to a CC2541-based device, and I thought I was just doing something wrong until I tried out TI's app with the SensorTag and saw the same issue. Here are my findings:

    The first time I connect things seem to go smoothly; I can discover services and read/write characteristics without a problem. However, after disconnecting, things go downhill. The device seems to be connecting - at least initially, but service discovery fails every time thereafter. This is probably what causes the crash in TI's app.

    I can usually get it to connect again by uninstalling the app, disabling bluetooth, restarting the phone, enabling bluetooth, and reinstalling the app.

    As I have only used the new 4.3 APIs with cc2541-based hardware, I am not sure whether it's an issue on TI's end or Google's end.

  • The sensorTag works with iOS (ipad mini) and windows 7.  So I suspect it is Android 4.3 apps, at least in my case. 

  • I got problems with the Nexus 4 and 7, the app won't discover any devices and crashes constantly. Tested it with two different SensorTags.

  • I just ran some connectivity tests on 4.3 with a BLE dev board from another manufacturer, and everything was fine. I was able to scan, connect, discover services, and disconnect a dozen times in a row without any issues. However, as soon as I try connecting to the SensorTag, service discovery stops working (even when I try connecting to the other board again).

    Is it possible this is an isolated issue cause by a combination of the CC2541 (or TI's BLE stack) and Android 4.3 HALs?

  • There should be an update to the app today or tomorrow. It containts a few bug fixes (better handling of the BT off case, no BLE support, and some navigation issues). Keep us posted, it is as mentioned above very early days, and the app has so far only been tested on Galaxy S4. What device are you running on?

  • Nexus 7 doesn't have BLE support. A new version of the app. should handle this scenario better. I am more suprised that you have problems on the Nexus 4.

  • Nexus 7 2012 doesn't OFFICIALLY support BLE, but that doesn't mean you can't use it if you hack it a little ;) as a matter of fact if you modify an xml file (or push the right permission file) and rebuild the bluetooth stack from AOSP then it works quite well ;).

    But I agree your app is too unstable, also is there any chance you can distribute code as well? And use zip files instead of .exe I can't open those in Linux and don't want to start a hole VM every time you update the app ;)

  • I am also surprised that the Nexus 4 is seeing this issue (I tried on two other N4s to make sure it wasn't an issue on my specific phone). I will not have access to any other 4.3 devices until my new Nexus 7 arrives on Friday, so I have nothing to test against until then.

    I also agree Manuel's comment. I think it would be great to get the source code and a .zip instead of an executable.

  • Manuel:  can you send a more specific link on getting nexus 7 to work for BLE ?  I am interested in following through.  Thanks

  • I've attached a log dump of the app, if it helps. Between line 23 and 24 there is a 7-second gap where it is trying (unsuccessfully) to discover the services, after which it disconnects.

     

    1016.sensortag-nexus4-logdump.txt
    07-30 17:17:33.092: I/Custom(8648): Bluetooth is supported by the hardware and turned on.
    07-30 17:17:33.092: I/LeController(8648): run() finished.
    07-30 17:17:33.102: I/LeController(8648): startScan()
    07-30 17:17:33.102: D/BluetoothAdapter(8648): startLeScan(): null
    07-30 17:17:33.142: D/BluetoothAdapter(8648): onClientRegistered() - status=0 clientIf=4
    07-30 17:17:33.182: D/libEGL(8648): loaded /system/lib/egl/libEGL_adreno200.so
    07-30 17:17:33.182: D/libEGL(8648): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
    07-30 17:17:33.182: D/libEGL(8648): loaded /system/lib/egl/libGLESv2_adreno200.so
    07-30 17:17:33.192: I/Adreno200-EGL(8648): <qeglDrvAPI_eglInitialize:265>: EGL 1.4 QUALCOMM Build: Iabe52cfaeae4c5fab1acacfe6f056ba15fa93274
    07-30 17:17:33.222: D/OpenGLRenderer(8648): Enabling debug mode 0
    07-30 17:17:33.232: D/BluetoothAdapter(8648): onScanResult() - Device=90:59:AF:04:33:36 RSSI=-56
    07-30 17:17:33.252: D/dalvikvm(8648): GC_FOR_ALLOC freed 243K, 3% free 9131K/9400K, paused 17ms, total 17ms
    07-30 17:17:33.342: D/BluetoothAdapter(8648): onScanResult() - Device=EC:FE:7E:10:0A:7C RSSI=-56
    07-30 17:17:33.592: D/BluetoothAdapter(8648): onScanResult() - Device=90:59:AF:04:31:55 RSSI=-80
    07-30 17:17:41.911: D/BluetoothAdapter(8648): onScanResult() - Device=BC:6A:29:C3:43:AE RSSI=-63
    07-30 17:17:43.112: D/BluetoothGatt(8648): connect() - device: BC:6A:29:C3:43:AE, auto: false
    07-30 17:17:43.112: D/BluetoothGatt(8648): registerApp()
    07-30 17:17:43.112: D/BluetoothGatt(8648): registerApp() - UUID=b5f3a260-4f1d-4f8e-b36e-f200213b0f54
    07-30 17:17:43.122: D/BluetoothGatt(8648): onClientRegistered() - status=0 clientIf=5
    07-30 17:17:43.333: D/BluetoothGatt(8648): onClientConnectionState() - status=0 clientIf=5 device=BC:6A:29:C3:43:AE
    07-30 17:17:43.333: I/Callback(8648): onConnectionStateChange(GATT_SUCCESS, STATE_CONNECTED
    07-30 17:17:43.333: D/BluetoothGatt(8648): discoverServices() - device: BC:6A:29:C3:43:AE
    07-30 17:17:43.343: I/Custom(8648): Started service discovery.
    07-30 17:17:50.470: D/BluetoothGatt(8648): onSearchComplete() = Device=BC:6A:29:C3:43:AE Status=129
    07-30 17:17:50.480: E/Custom(8648): Service discovery failed for SensorTag
    07-30 17:17:50.490: D/BluetoothGatt(8648): onClientConnectionState() - status=133 clientIf=5 device=BC:6A:29:C3:43:AE
    07-30 17:17:50.490: I/Callback(8648): onConnectionStateChange(not GATT_SUCCESS, STATE_DISCONNECTED
    07-30 17:17:50.500: E/Custom(8648): Unable to get service for IR_TEMPERATURE
    07-30 17:17:50.510: E/Custom(8648): Unable to get service for ACCELEROMETER
    07-30 17:17:50.510: V/WriteQueue(8648): Queue size: 1
    07-30 17:17:50.510: V/WriteQueue(8648): Queue size: 2
    07-30 17:17:50.510: E/Custom(8648): Unable to get service for HUMIDITY
    07-30 17:17:50.510: E/Custom(8648): Unable to get service for MAGNETOMETER
    07-30 17:17:50.520: V/WriteQueue(8648): Queue size: 3
    07-30 17:17:50.520: V/WriteQueue(8648): Queue size: 4
    07-30 17:17:50.520: E/Custom(8648): Unable to get service for GYROSCOPE
    07-30 17:17:50.520: E/Custom(8648): Unable to get service for SIMPLE_KEYS
    07-30 17:17:50.520: V/WriteQueue(8648): Queue size: 5
    07-30 17:17:50.520: W/dalvikvm(8648): threadid=13: thread exiting with uncaught exception (group=0x415a0700)
    07-30 17:17:50.520: E/AndroidRuntime(8648): FATAL EXCEPTION: Thread-397
    07-30 17:17:50.520: E/AndroidRuntime(8648): java.lang.NullPointerException
    07-30 17:17:50.520: E/AndroidRuntime(8648): 	at com.ti.sensortag.ble.LeController$1.run(LeController.java:81)
    07-30 17:17:50.520: E/AndroidRuntime(8648): 	at java.lang.Thread.run(Thread.java:841)
    07-30 17:17:50.670: D/BluetoothAdapter(8648): stopLeScan()
    07-30 17:17:50.680: I/Custom(8648): Scanning stopped.
    07-30 17:17:51.181: I/Custom(8648): onDestroy
    07-30 17:17:51.181: D/BluetoothAdapter(8648): stopLeScan()
    07-30 17:17:51.181: D/BluetoothGatt(8648): close()
    07-30 17:17:51.191: D/BluetoothGatt(8648): unregisterApp() - mClientIf=5
    

  • Manuel. I have not experience in building Android components from AOSP. Is there any chance that you could publish a binary image for now? (or even better: provide a recipe for building it). You will get full credit on the TI processors Wiki-page. Also a good point about wrapping the APK in a .zip file. instead of an .exe file The source code for the SensorTag app (+ two further apps: BLE Device Monitor and SensorTag Camera Control) will be published mid-August. For now I can add that the BLE related code is partly based on the Android BLE Sample app and partly on the examples in the Samsung SDK (some clean-up is yet to be done).

  • I found a way to get my Nexus 4 to discover the SensorTag in a few steps:

    -Turn Bluetooth off, remove all other BT Devices

    -Turn BT on

    -Press the side button on the Sensor Tag

    -Start the app

    This way I can at least discover one SensorTag, connection works sometimes. However, I have not managed to read out any data from the SensorTag, if I switch to the services tab the app closes with errors after a few seconds. Please also note that the app crashes or just not works if I put more than one SensorTag in discovery mode.

  • It consistently crashes on my Nexus 4 as well even with 0.9.1. If it helps, I can get it to work reliably by unpairing all bluetooth devices, turning off WiFi, force-closing the app and clearing its data, and then reconnecting. The app is very flaky in general though.

  • With 0.9 version I was able to consitently read buttons, acelerometer and gyroscope with my Nexus 4. But trying to enale any other sensos caused app crashes and nor data received.

    With 0.9.1 there is no way to read even what was working with previous versions. Continuous crashes of the application, but the sensor tag is always recognized without problems.

  • We are aware of the issues in version 0.9.1. We have now got a Nexus 4 in-house and are now able to expand the test coverrage,. We will release version 0.9.2 early next week.

  • Hi TI-team!

    Could you please share your experiences while implementing the Android BLE API of Android 4.3? Can you confirm or add anything to this discussion? http://stackoverflow.com/questions/17870189/android-4-3-bluetooth-low-energy-unstable

    It appears to me, that BLE is broken in Android 4.3, since even the Android demo app has problems to discover services after several connects.

  • We have seen two major issues so far, and also noticed slightly different behaviour between Nexus 4 and Nexus 7. 

    1. When trying to reconnect to an existing BluetoothGatt object, connection and disconnection can take a long time, up to 30 seconds. We found a workaround for this by making sure a new object is always created when we want to connect, See BluetoothLeService, method connect.

    2. There seems to be a limit to the number of services that can provide notifications on continuously (4). This is the case on all the devices we have tested, and was also a problem with the Samsung BLE SDK 2.0 and Galaxy S4.

    3. Minor issues are:

    a) Scanning: Nexus 7 reports scnaResults continuously, Nexus 4 only once after starting discovery

    b) We have never succeeded in unpairing a devices from Nexus 4 via the system Bluetooth dialog.

    The general impression is that the Android BLE API is simpler and tidier than the near identical Samsung API we used initially, but also less stable. The Android sample app is very limited, hopefully they will provided more comprehensive apps like Samsung did in BLE SDK 2. It is early days yet, hopefully Google will fix these issues soon.

  • Trying out a new Nexus 7 (2013), results are much like those described with other Nexus devices.

    The SensorTag app sees SensorTag and other devices.  I haven't experienced any crashes, but the app has difficulty connecting and is unable to maintain connections.  Turning Bluetooth off and back on seems to improve the odds of a successful connection.  Once connected, after a few seconds the message appears "Unfortunately, SensorTag has stopped".  Have not been able to get any data from SensorTag.

    As an aside, if issue 3a above means that the app sees multiple results for a given device, that would be an improvement rather than an 'issue'.  Receiving continuous scan results means that the app can update RSSI display as one moves around.

  • The SensorTag app is still being worked at and tested on Nexus 4. The difference in scanning behaviour between the various devices has created some extra work. Will let you know as oon as there is an update. Has anyone received Android 4.3 OTA updates for Galaxy S4 and HTC one or other Nexus devices?

  • @TI,

    Why is that the android app is distributed in apk? I would want to use/modify it based on my need or for other TI devices than sensor tag which have different characteristic UUIDs/features.. Can I get an eclipse project with source code instead please?

    Thanks!

  • I agree.

    Please when you have the first working version do as with the iOS version publishing the source code, 

    It will be very helpful.

  • @TI

    +1 here on the source code, I don't own a sensor tag, I have an keyfob demo kit instead and I cannot even see it with whatever I code or with the Android internal bluetooth settings. With this I instantly see the keyfob when I put it in discoverable mode. 
    I have already a thread started on my issue : http://e2e.ti.com/support/low_power_rf/f/538/t/283360.aspx

    I would really like to know what you do differently... Even if it is spagetti-code, just publish it and you'll help many people !

  • The SensorTag app is still undergoing testing. Source code will be released within 1-2 weeks. In the meantime we can recommend the Androud BluetoothLe sample app. It has all the necessary stuff for connecting, service discovery and GATT access.

    1)      Open the Android SDK manager to make sure the API 18 ‘Samples for SDK’ are installed.

    2)      Back in Eclipse select File->New->Project->Android Sample Project. Here you will find it under Legacy->BluetoothLeGatt

  • You guys should try it once again with WiFi disabled. We found, this makes the BLE stack more stable on our Nexus 4. Also see parallel discussion at http://stackoverflow.com/questions/17870189/android-4-3-bluetooth-low-energy-unstable?lq=1#comment26569831_18006911

  • A note for owners of SensorTag with old firmware: Android 4.3 BLE uses a minimum connection interval of 7.5 ms. This fast connection interval may cause problems with older versions of SensorTag firmware, particularly when using the Humidity sensor. It can cause the SensorTag to disconnect. Follow the link for instructions on how to upgrade to FW revision 1.4. The FW may be upgraded either with CC debugger or Over-the-air download (iOs app. or Windows BLE Device Monitor).

  • Respected sir,

    I am trying to play on the BluetoothLeGatt code.

    if any one also developing the simple App to understand the working with sensortag pl. guide me. we can share to understand more detail.

    I am trying to get data temp sensor. I understand that i have to enable the sensor and setNotification. Now i donot understand how to enable the sensor.

    i have writtent the startTiTempSensor funciton which will trigger onServiceDiscovered function. which as under. and as end i send the notification. same as heartratesensor example though it is attached herewith.

    If any one can guide if i am doing correct or any issue?

    My problem are:

    1. how to enable the sensor?

    2. how to get data?

    3. how to disable the sensor?

    //-----------------------------------------------------startTiTempSensor function-----------------------------//

    public void startTITempSensor(){
    Log.d("mScanning", "inStartTEmpTiSensor");
    //i have to configure the TI sensor
    List<BluetoothGattService> gattServices = getSupportedGattServices();
    for (BluetoothGattService gattService : gattServices) {
    if(gattService.getUuid().equals(UUID_Temp_SERV)){
    Log.d("mScanning","gattService UUID" + gattService.getUuid().toString());
    List<BluetoothGattCharacteristic> gattCharacteristics = gattService.getCharacteristics();
    for (BluetoothGattCharacteristic gattCharacteristic : gattCharacteristics) {
    if(gattCharacteristic.getUuid().equals(UUIC_Temp_CONFIG)){
    Log.d("mScanning","gattCharacteristic UUID" + gattCharacteristic.getUuid().toString());
    int data = 0x01;
    gattCharacteristic.setValue(data, gattCharacteristic.FORMAT_UINT8, 1);
    int tempPermission = gattCharacteristic.getPermissions();
    Log.d("mScanning", "gattCharacteristic Permission" + Integer.toString(tempPermission));
    mBluetoothGatt.writeCharacteristic(gattCharacteristic);
    setCharacteristicNotification( gattCharacteristic,true);
    }
    }
    }
    }
    }

    //-------------------------------------------------setChareacteristicNotification-----------------------------------------------------------//

    public void setCharacteristicNotification(BluetoothGattCharacteristic characteristic,
    boolean enabled) {
    Log.d("mScanning", "BLESER_setCharacteristicNotification");
    if (mBluetoothAdapter == null || mBluetoothGatt == null) {
    Log.w(TAG, "BluetoothAdapter not initialized");
    return;
    }
    mBluetoothGatt.setCharacteristicNotification(characteristic, enabled);

    // This is specific to Heart Rate Measurement.
    if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) {
    BluetoothGattDescriptor descriptor = characteristic.getDescriptor(
    UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG));
    Log.d("mScanning", descriptor.toString());
    descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
    mBluetoothGatt.writeDescriptor(descriptor);
    }
    if(UUIC_Temp_CONFIG.equals(characteristic.getUuid())){
    BluetoothGattDescriptor descriptor = characteristic.getDescriptor(UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG));
    descriptor.setValue(BluetoothGattDescriptor.ENABLE_INDICATION_VALUE);
    mBluetoothGatt.writeDescriptor(descriptor);
    }
    }

  • Hi Amrish Tewar.

    You are setting the config characteristic to the wrong value.
    Replace
    "int data = 0x01;
    gattCharacteristic.setValue(data, gattCharacteristic.FORMAT_UINT8, 1);"
    with
    "gattCharacteristic.setValue(new byte[]{1});"

    Also change ENABLE_INDICATION_VALUE to ENABLE_NOTIFICATION_VALUE.

    A third issue is that you cannot do two writes immediately after each other.
    The BLE stack can only handle one "remote" request at a time, meaning that if you
    do a write immediately after another write the second requst will be silently ignored.
    You can solve this by either elegantly creating a queue for the API calls that
    require remote callbacks, or by hackishly sleeping a short while between calls.

    put "try {Thread.sleep(200);} catch (InterruptedException e) { e.printStackTrace();}"
    at the start of setCharacteristicNotification

    Happy Hacking

    Sebastian Bøe

  • Thank you Mr Boe.

    I got the temperature displayed on my android

    Regards

    Amrish K. Tewar

  • Respected sir,

    I have still have some question. I have read the android documentation before writing the question, still it does not makes a sense to me. 

    If any one can help?

    1. How to enable the sensor? The following code snippet does enable the sensor. But i still donot understand how it does?

    if(gattCharacteristic.getUuid().equals(UUIC_Temp_CONFIG)) {

    gattCharacteristic.setValue(new byte[]{1});

    writeCharacteristic(gattCharacteristic);

    }

    2. How to disable the sensor? - I donot know code for this 

    3. How to stop the setNotification for any given characteristic?

    4. I am not getting the code snippet meaning

    final int charaProp = characteristic.getProperties();
    if ((charaProp | BluetoothGattCharacteristic.PROPERTY_READ) > 0) { //what  this does?
    if (mNotifyCharacteristic != null) {
    Log.d("mScanning", "DCA_servicesListClickListener_onChildClick"+ "setCharacteristicNotification");
    mBluetoothLeService.setCharacteristicNotification(
    mNotifyCharacteristic, false);
    mNotifyCharacteristic = null;
    }
    mBluetoothLeService.readCharacteristic(characteristic); (What this code do?)
    }
    if ((charaProp | BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0) { (//what this does?)
    mNotifyCharacteristic = characteristic;
    mBluetoothLeService.setCharacteristicNotification(
    characteristic, true);
    }
    return true;
    }

    Regards

    Amrish K. Tewar

  • Hi Amrish Tewar.

    1. How to enable the sensor? The following code snippet does enable the sensor. But i still donot understand how it does?

    if(gattCharacteristic.getUuid().equals(UUIC_Temp_CONFIG)) {
    gattCharacteristic.setValue(new byte[]{1});
    writeCharacteristic(gattCharacteristic);
    }

    Okay, so i think the documentation you are missing, which makes all this very cryptic with secret codes,
    is at http://processors.wiki.ti.com/index.php/SensorTag_User_Guide#Gatt_Server. There they link to http://processors.wiki.ti.com/index.php/File:BLE_SensorTag_GATT_Server.pdf which explains what codes need to be written to which characteristics to get the behaviour you want. But basically all sensors except the gyroscope are enabled by writing 01 to the corresponding configuration characteristic.

    2. How to disable the sensor? - I donot know code for this

    It's the same procedure as enabling the sensor, except that you write a different code. See http://processors.wiki.ti.com/index.php/File:BLE_SensorTag_GATT_Server.pdf, spoiler alert, it's 00. However, take note that if you disconnect from the SensorTag the firmware is going to disable all the sensors for you anyway.

    3. How to stop the setNotification for any given characteristic?

    To stop notifications you need to stop them locally and remotely. Just like you need to start them locally and remotely.
    It's the same code as for enabling notifications, except that you change the argument of setCharacteristicNotification from true to false.
    And you replace BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE with BluetoothGattDescriptor.DISABLE_NOTIFICATION_VALUE.

    See the SensorTag User Guide wiki, at the Android section for an example of enabling notifications.

    Happy Hacking
    Sebastian Bøe

  • I got the Android App to run on my Galaxy Nexus (CM 10.2 Nightly) and it works mostly as expected. Only exceptions are that I can not change services without force closing the app (manually via settings, not the annoying crash popup) otherwise I get no information from the Tag and for whatever reason I get no connection to the Tag when enabling the humidity service (due to the interval I guess).

    All in all: once configured it does run but humidity does not work at all. I would welcome a way to update the firmware via the android app as i neither own a programmer nor a compatible BLE dongle for windows.

    Markus

  • Respected Sebastian Boe,

    Thanking you for the help you have provided i will try to understand and come to you if needed.

    Regards

    Amrish K. Tewar

  • Just tried the 7/30/13  4.3 App on Nexus 4 & 10:

    Nexus 4 - App opens but crashes if you try to change preferences..  Reports that Bluetooth is working but no devices located.

    Nexus 10 - immediate crash...

    Note - eZ430 arrived today so this is a new (as in only opened a few minutes ago) exploration for me.  Sensor Tags due in next week...

     

    :)

    Dale

    http://web-tech.ga-usa.com/

     

  • I downloaded the 0.9.3 version on Nexus 7 (2013) and Nexus (2012) both with 4.3.  I also updated the sensorTag to FW 1.0.4.  both works. Here are a list of observation:

    1: on Nexus 7 (2013), when scanning the availabel sensorTag, the connect button is only clickable in the first 1 second or so. afte that it greyed out.

    2: There is a limiation of 4 services that the apps can show.  what is the limiting factor here ? I recall ipad can get all.

    3: Nexus 7 (2012) needs a pricy $10 apps "Bluetooth Low Energy Enabler" and root.  Nexus 2013 does not need this apps, which the website (http://processors.wiki.ti.com/index.php/Bluetooth_SensorTag?INTC=SensorTag&HQS=SensorTag-wiki) is not clear on.

    When can you publish the android project source code ?

    Thanks

    Eddie

  • 1. We have never had a chance to test on Nexus 7 (2013). This behaviour indicates that only one scanResult is reported per device per scan (also the behaviour on Nexus 4).

    2. This is true. It is a limitation in the Android stack that we also observed on Samsung's BLE SDK.

    3. Thanks for the feedback. We make the distinction between Nexus 7 (2012/2013) clearer.. The source code will be published any day now.

  • I have an rev 1.3 of Sensor tag and nexus 4 running stock JB4.3 .. I have downloaded the 0.9.3 version and also updated the SensorTag FW to 1.0.4.

    I am able to see the tag but as soon as I choose the preference and try to connect after about 7~10 sec the tag automatically starts advertising and the app crashes.

    :(

  • I tried to download the SensorTag_0_9_3.apk to a Galaxy S4, but it complained abut "There is a problem parsing the package".  Any idea why?  Anyone tried on S4?

  • Jomar Hønsi said:

    The SensorTag app is still undergoing testing. Source code will be released within 1-2 weeks. 

    Is the (Eclipse) Android project source files available for the SensorTag app now?  If so, could you send out the pointer to the download location?  If not, is it coming soon?  Thanks. 

  • Hi Markus

    Could you explain the force closing the app when dealing with the services?  Like why and the steps?  Thanks.

    Luke

  • Guys 1 thing i want to share/ask weather ur phone is rooted or what ? I had an roted android 4.3 Nexus 4 and the app was force closing . Later due to some issues i got my Nexus 4 replaced and after upgrading it to 4.3 (JWR66Y) i reinstalled thye app and VOLA :) :) its working though there is a restriction on no of connections limited to 4

    and also i am able to connect and disconnect as many times as i want it works :) though there are some LOST CONNECTIONS but it works .. :) :) :D

  • Congrats, rooting rules!  

    I'm using S4 as is (running Samsung's UI with Android 4.2.2); it is not rooted, yet.  From Ti's positing for SensorTag Android support, it stated that SensorTag support S4, but didn't say if it was rooted.

    Really hope TI post more about these things, and give us developers more technical support.  After all, they have put in such much resources to setup the whole SensorTag program.

  • Please note that our BLE apps won't work on the S4 unless Android 4.3 is installed on the device. We have tested it with Android 4.3 Google Play edition. Hopefully Samsung will soon roll out their native Android 4.3 but experience shows that this may take months. NB! Rooting is not required for the app. to work.

  • The limitation of 4 notifications has been observed on all devices we have tested. It also existed on the Samsung BLE SDK 2.0. We have notified Google about this issue, and are awaiting a response.

  • Hi TI SensorTag team:

    I just bought a new Nexus 7 (2013) and verified that it has Android 4.3 installed.  But I saw exactly the same thing as Eddie reported: 

    "1: on Nexus 7 (2013), when scanning the availabel sensorTag, the connect button is only clickable in the first 1 second or so."

    As you may know, many Android developers are really looked forward to seeing SensorTag work just like it did on iOS devices, and we are lead to believe Android 4.3 (which is CERTIFIED for Bluetooth Smart Ready) be the savior.  From Eddie's testing and my testing, it is proven that SensorTag Android app has problems.  Could you folks respond to the following?

    1). Did TI SensorTag team test the SensorTag Android app with Android devices that are running Android 4.3?  If so, what are they?

    2). When can the team release the Android source project that has all the source code for building it in ADK/Eclipse and running it on Android 4.3 loaded devices (which claimed Bluetooth Smart Ready)?

    If you folks trace back all the threads of posts on SensorTag for Android, it has been several months, with spotty information, and no firm confirmation as to the answers to these 2 questions.  With all the due respect, it really does not reflect well on TI, in my personal opinion.  

    LET'S GET SOLID, WORKING ANDROID APPS OUT for SensorTag!


  • 1. Test devices: http://processors.wiki.ti.com/index.php/Bluetooth_SensorTag#Android

    2. The source has been released: http://www.ti.com/tool/sensortag-sw

    Please note that there are issues with Android 4.3 BLE that affects the app:

    - when connection is lost it is often necessary to restart teh Bluettooth adapter (turn it off, then on again)

    - a maximum of four notifications may be enabled simultaneously

  • Great news! thanks :)

    Now we all can try to solve the force close issues.

  • Thanks Jomar.  It's great to see the 1.0.0 version is released.

    1). For the "tested devices", the http://processors.wiki.ti.com/index.php/Bluetooth_SensorTag#Android still listed them as beta.  With this 1.0.0 release, were these devices tested and verified to work with this release?  I noticed in other posts that Nexus 7 2012 or Nexus 7 2013 were claimed not being tested (with 0.9.3).  Note 

    2). Is TI planning to have CC2541 and/or SensorTag certified by Bluetooth Special Interest Group (SIG) as Bluetooth Smart?  (I take the Bluetooth Smart certification for a device means it can interoperate with a Bluetooth Smart certified device, yes?)

     

  • Hi Luke,

    Luke H said:
    2). Is TI planning to have CC2541 and/or SensorTag certified by Bluetooth Special Interest Group (SIG) as Bluetooth Smart?  (I take the Bluetooth Smart certification for a device means it can interoperate with a Bluetooth Smart certified device, yes?)

    CC2541 together with the software stack is fully qualified and an End Product Listing (EPL) has been created for the Sensor Tag (Link). The EPL is required in order to state Sensor Tag as a Bluetooth SMART device, which it is.

    Best Regards.