首页 > 解决方案 > 从类到活动的数据传递问题

问题描述

安卓新手!基本上我试图为我的产品制作一个在 BT SPP 协议上运行的专有应用程序!所以我决定使用https://github.com/akexorcist/BluetoothSPPLibrary 一个类来处理来自 bt 设备的传出/传入数据的 bt 服务

发送数据没问题!但是当我尝试接收数据时根本无法在活动类中调用/接收数据

这是我的代码片段!

BTSpp.java

 public interface OnDataReceivedListener {
        public void onDataReceived(byte[] data, String message);  /// for sending back data to the activity 
    }

...

//this is not executing cause log is not running when receives data

public void setOnDataReceivedListener (OnDataReceivedListener listener) {
        Log.d("TAG", "setOnDataReceivedListener() returned: " );
        if(null == mDataReceivedListener)
            mDataReceivedListener = listener;
    }
...
//Here is the snippet for reading data from bt service and 
//it is showing log whenever i receives data from spp device 

case BluetoothState.MESSAGE_READ:

                    byte[] readBuf = (byte[]) msg.obj;
                    String readMessage = new String(readBuf);

                    if(readBuf != null && readBuf.length > 0) {
                        if(mDataReceivedListener != null){
                            Log.d("TAG", "handleMessage() returned: "+mDataReceivedListener ); //executes
                            mDataReceivedListener.onDataReceived(readBuf, readMessage);}
                    }
                    break;

并在我的活动窗口 onCreate 方法中根本不执行此方法 MainActivity.java

BluetoothSPP bt=new BluetoothSPP(this); //initialized

{...}
bt.setOnDataReceivedListener(new BluetoothSPP.OnDataReceivedListener() {
            @Override
            public void onDataReceived(byte[] data, String message) {
                Log.d(TAG, "onDataReceived() returned: " );
                Log.i(TAG, "onDataReceived: "+message);
                Log.i(TAG, "onDataReceived: "+data);
                processIncomingdata(message);
            }
        });

也许这个函数不是从服务类调用的。我真的找不到任何线索!谁能给我一些建议!

先感谢您 !

标签: javaandroidbluetoothspp

解决方案


推荐阅读