8

I've worked with a device that's not really compatible with Google BLE and instead uses Samsung BLE SDK for it's connection. I've tried using Google SDK and it can connect successfully, but immediately disconnected with status 19 after connected in which there are no documentation of what is this status entails.

03-02 00:07:55.572    1181-1181/alex.jstylemod I/art﹕ Late-enabling -Xcheck:jni
03-02 00:07:55.861    1181-1181/alex.jstylemod D/BluetoothAdapter﹕ startLeScan(): null
03-02 00:07:55.931    1181-1201/alex.jstylemod D/BluetoothLeScanner﹕ onClientRegistered() - status=0 clientIf=5
03-02 00:07:55.949    1181-1208/alex.jstylemod D/OpenGLRenderer﹕ Render dirty regions requested: true
03-02 00:07:55.965    1181-1181/alex.jstylemod D/Atlas﹕ Validating map...
03-02 00:07:55.985    1181-1208/alex.jstylemod I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LA.BF.1.1.04.04.02.162.107_msm8226_LA.BF.1.1__release_AU ()
    OpenGL ES Shader Compiler Version: E031.25.01.03
    Build Date: 10/28/14 Tue
    Local Branch:
    Remote Branch: quic/l_LNX.LA.3.6
    Local Patches: NONE
    Reconstruct Branch: AU_LINUX_ANDROID_LA.BF.1.1.04.04.02.162.107 + cb93e16 + f50fe49 + d7c18e6 + 5b9a565 + 0f3a25d + 607156e + 75511aa + e4d16c0 + 686f3eb + 211a271 + dd281ee +  NOTHING
03-02 00:07:55.988    1181-1208/alex.jstylemod I/OpenGLRenderer﹕ Initialized EGL, version 1.4
03-02 00:07:56.010    1181-1208/alex.jstylemod D/OpenGLRenderer﹕ Enabling debug mode 0
03-02 00:07:57.769    1181-1201/alex.jstylemod D/BluetoothLeScanner﹕ onScanResult() - ScanResult{mDevice=B4:99:4C:67:72:70, mScanRecord=ScanRecord [mAdvertiseFlags=6, mServiceUuids=[0000fff0-0000-1000-8000-00805f9b34fb], mManufacturerSpecificData={}, mServiceData={}, mTxPowerLevel=0, mDeviceName=JStyle 677270], mRssi=-80, mTimestampNanos=128983439815617}
03-02 00:08:05.868    1181-1181/alex.jstylemod D/BluetoothAdapter﹕ stopLeScan()
03-02 00:08:27.348    1181-1181/alex.jstylemod D/BluetoothAdapter﹕ stopLeScan()
03-02 00:08:27.354    1181-1181/alex.jstylemod D/BluetoothAdapter﹕ scan not started yet
03-02 00:08:27.357    1181-1181/alex.jstylemod D/BluetoothGatt﹕ connect() - device: B4:99:4C:67:72:70, auto: false
03-02 00:08:27.357    1181-1181/alex.jstylemod D/BluetoothGatt﹕ registerApp()
03-02 00:08:27.357    1181-1181/alex.jstylemod D/BluetoothGatt﹕ registerApp() - UUID=76c2195c-0afe-4660-8164-f5f81f6fdc0a
03-02 00:08:27.366    1181-1201/alex.jstylemod D/BluetoothGatt﹕ onClientRegistered() - status=0 clientIf=5
03-02 00:08:27.379    1181-1181/alex.jstylemod D/BLEService﹕ Trying to create connection with autoconnect enabled
03-02 00:08:28.038    1181-1202/alex.jstylemod D/BluetoothGatt﹕ onClientConnectionState() - status=0 clientIf=5 device=B4:99:4C:67:72:70
03-02 00:08:28.046    1181-1202/alex.jstylemod I/BLEService﹕ Connected to GATT server
03-02 00:08:28.769    1181-1201/alex.jstylemod D/BluetoothGatt﹕ onClientConnectionState() - status=19 clientIf=5 device=B4:99:4C:67:72:70
03-02 00:08:28.769    1181-1201/alex.jstylemod I/BLEService﹕ Disconnected from GATT Server

I've tried using the Samsung BLE SDK for this device (supposedly supported in the official app) and hit a wall where I cannot bind the GATT adapter successfully. I've also unable to debug to find out what's wrong since the jar wiped the line number debugging. I've attached the source code for my apps.

03-06 16:05:39.981    2965-2965/alex.jstylemod I/art﹕ Late-enabling -Xcheck:jni
03-06 16:05:40.010    2965-2975/alex.jstylemod I/art﹕ Ignoring second debugger -- accepting and dropping
03-06 16:05:40.021    2965-2975/alex.jstylemod I/art﹕ Debugger is no longer active
03-06 16:05:40.175    2965-2965/alex.jstylemod D/BluetoothAdapter﹕ startLeScan(): null
03-06 16:05:40.239    2965-2982/alex.jstylemod D/BluetoothLeScanner﹕ onClientRegistered() - status=0 clientIf=5
03-06 16:05:40.287    2965-2988/alex.jstylemod D/OpenGLRenderer﹕ Render dirty regions requested: true
03-06 16:05:40.301    2965-2965/alex.jstylemod D/Atlas﹕ Validating map...
03-06 16:05:40.353    2965-2988/alex.jstylemod I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LA.BF.1.1.04.04.02.162.107_msm8226_LA.BF.1.1__release_AU ()
    OpenGL ES Shader Compiler Version: E031.25.01.03
    Build Date: 10/28/14 Tue
    Local Branch:
    Remote Branch: quic/l_LNX.LA.3.6
    Local Patches: NONE
    Reconstruct Branch: AU_LINUX_ANDROID_LA.BF.1.1.04.04.02.162.107 + cb93e16 + f50fe49 + d7c18e6 + 5b9a565 + 0f3a25d + 607156e + 75511aa + e4d16c0 + 686f3eb + 211a271 + dd281ee +  NOTHING
03-06 16:05:40.359    2965-2988/alex.jstylemod I/OpenGLRenderer﹕ Initialized EGL, version 1.4
03-06 16:05:40.409    2965-2988/alex.jstylemod D/OpenGLRenderer﹕ Enabling debug mode 0
03-06 16:05:41.210    2965-2982/alex.jstylemod D/BluetoothLeScanner﹕ onScanResult() - ScanResult{mDevice=B4:99:4C:67:72:70, mScanRecord=ScanRecord [mAdvertiseFlags=6, mServiceUuids=[0000fff0-0000-1000-8000-00805f9b34fb], mManufacturerSpecificData={}, mServiceData={}, mTxPowerLevel=0, mDeviceName=JStyle 677270], mRssi=-82, mTimestampNanos=532107906138682}
03-06 16:05:43.502    2965-2965/alex.jstylemod D/BluetoothAdapter﹕ startLeScan(): null
03-06 16:05:43.503    2965-2965/alex.jstylemod E/BluetoothAdapter﹕ LE Scan has already started
03-06 16:05:50.182    2965-2965/alex.jstylemod D/BluetoothAdapter﹕ stopLeScan()
03-06 16:05:53.506    2965-2965/alex.jstylemod D/BluetoothAdapter﹕ stopLeScan()
03-06 16:05:53.512    2965-2965/alex.jstylemod D/BluetoothAdapter﹕ scan not started yet
03-06 16:06:15.795    4053-4053/alex.jstylemod D/BluetoothAdapter﹕ startLeScan(): null
03-06 16:06:15.843    4053-4071/alex.jstylemod D/BluetoothLeScanner﹕ onClientRegistered() - status=0 clientIf=5
03-06 16:06:16.022    4053-4074/alex.jstylemod D/OpenGLRenderer﹕ Render dirty regions requested: true
03-06 16:06:16.038    4053-4053/alex.jstylemod D/Atlas﹕ Validating map...
03-06 16:06:16.065    4053-4074/alex.jstylemod I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LA.BF.1.1.04.04.02.162.107_msm8226_LA.BF.1.1__release_AU ()
    OpenGL ES Shader Compiler Version: E031.25.01.03
    Build Date: 10/28/14 Tue
    Local Branch:
    Remote Branch: quic/l_LNX.LA.3.6
    Local Patches: NONE
    Reconstruct Branch: AU_LINUX_ANDROID_LA.BF.1.1.04.04.02.162.107 + cb93e16 + f50fe49 + d7c18e6 + 5b9a565 + 0f3a25d + 607156e + 75511aa + e4d16c0 + 686f3eb + 211a271 + dd281ee +  NOTHING
03-06 16:06:16.067    4053-4074/alex.jstylemod I/OpenGLRenderer﹕ Initialized EGL, version 1.4
03-06 16:06:16.093    4053-4074/alex.jstylemod D/OpenGLRenderer﹕ Enabling debug mode 0
03-06 16:06:17.320    4053-4072/alex.jstylemod D/BluetoothLeScanner﹕ onScanResult() - ScanResult{mDevice=B4:99:4C:67:72:70, mScanRecord=ScanRecord [mAdvertiseFlags=6, mServiceUuids=[0000fff0-0000-1000-8000-00805f9b34fb], mManufacturerSpecificData={}, mServiceData={}, mTxPowerLevel=0, mDeviceName=JStyle 677270], mRssi=-80, mTimestampNanos=532144013210126}
03-06 16:06:25.797    4053-4053/alex.jstylemod D/BluetoothAdapter﹕ stopLeScan()
03-06 16:08:44.455    4053-4065/alex.jstylemod I/art﹕ Debugger is active
03-06 16:08:55.660    4053-4053/alex.jstylemod I/Choreographer﹕ Skipped 264 frames!  The application may be doing too much work on its main thread.
03-06 16:08:57.227    4053-4053/alex.jstylemod D/SamsungBLEService﹕ Calling Samsung BLE Service
03-06 16:08:57.488    4053-4053/alex.jstylemod W/ContextImpl﹕ Implicit intents with startService are not safe: Intent { act=com.samsung.android.sdk.bt.gatt.IBluetoothGatt } android.content.ContextWrapper.bindService:538 com.samsung.android.sdk.bt.gatt.BluetoothGatt.<init>:-1 com.samsung.android.sdk.bt.gatt.BluetoothGattAdapter.getProfileProxy:-1
03-06 16:08:57.498    4053-4053/alex.jstylemod E/BtGatt.BluetoothGatt﹕ Could not bind to Bluetooth Gatt Service
03-06 16:09:00.252    4053-4053/alex.jstylemod D/BluetoothAdapter﹕ stopLeScan()
03-06 16:09:00.259    4053-4053/alex.jstylemod D/BluetoothAdapter﹕ scan not started yet

Source on the calling code Activity

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        handler = new Handler();

        BluetoothSetting.checkBluetoothSetting(this);
        bluetoothAdapter = BluetoothSetting.getBluetoothAdapter(this,null);

        Intent gattServiceIntent = new Intent(this, SamsungBLEService.class);
        Set<BluetoothDevice> deviceSet = bluetoothAdapter.getBondedDevices();
        //Intent gattServiceIntent = new Intent(this, BLEService.class);
        startService(gattServiceIntent);
        boolean bindResult = bindService(gattServiceIntent, serviceConnection,BIND_AUTO_CREATE);

        //setContentView(R.layout.activity_device_list);
    }

Service

@Override
    public void onCreate() {
        Log.d(TAG, "Calling Samsung BLE Service");
        bluetoothAdapter = BluetoothSetting.getBluetoothAdapter(null,this);


        if(bluetoothGatt == null)
            BluetoothGattAdapter.getProfileProxy(this, serviceListener, BluetoothGattAdapter.GATT);
    }

Would you kindly shed light to this? I know I am newbie on Android Development.

Thank you

Fahim
  • 12,198
  • 5
  • 39
  • 57
Lunan
  • 183
  • 1
  • 3
  • 8

0 Answers0