0

Bluetooth LE を介してスマートフォンで受信したデータは、サービス クラスのこのメソッドで発生します。

    public void onCharacteristicRead(BluetoothGattCharacteristic charac, int status) 
    {
        UUID charUuid = charac.getUuid();
        Bundle mBundle = new Bundle();
        Message msg = Message.obtain(mActivityHandler, HRP_VALUE_MSG);
        Log.i(TAG, "onCharacteristicRead");
        if (charUuid.equals(BODY_SENSOR_LOCATION))
            mBundle.putByteArray(BSL_VALUE, charac.getValue());               
        msg.setData(mBundle);
        msg.sendToTarget();
    }

アクティビティ クラスの Handler は次のように構成されます。

private Handler mHandler = new Handler() 
    {
    @Override
    public void handleMessage(Message msg) 
    {
        switch (msg.what) 
        {
        case HRPService.HRP_VALUE_MSG:
            Log.d(TAG, "mHandler.HRP_VALUE_MSG");
            Bundle data1 = msg.getData();
            final byte[] bslval = data1.getByteArray(HRPService.BSL_VALUE);
            runOnUiThread(new Runnable() 
            {
                public void run() 
                {
                    if (bslval != null) 
                    {
                    try 
                    {
                        Log.i(TAG, "BYTE BSL VAL =" + bslval[0]);
                        TextView bsltv = (TextView)  findViewById(R.id.BodySensorLocation);
                        bsltv.setText("\t" + mContext.getString(R.string.BodySensorLocation)
                                + getBodySensorLocation(bslval[0]));
                    } 
                    catch (Exception e) 
                    {
                        Log.e(TAG, e.toString());

                    }

                }
            }
        });

    default:
        super.handleMessage(msg);
    }
}

};

誰かがこれら2つの方法の関係を教えてもらえますか?. リモート デバイスからデータの配列を受け取り、そのデータを Textview "bsltv" に表示したいと考えています。どうすればいいですか?

前もって感謝します

4

1 に答える 1