Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从类到活动的数据传递问题_Java_Android_Bluetooth_Spp - Fatal编程技术网

Java 从类到活动的数据传递问题

Java 从类到活动的数据传递问题,java,android,bluetooth,spp,Java,Android,Bluetooth,Spp,机器人新手! 基本上,我试图为我的产品制作一个基于BT SPP协议的专有应用程序! 所以我决定使用一个类来处理来自bt设备的传出/传入数据的bt服务 发送数据没问题! 但是,当我尝试接收数据时,无法调用/接收活动类内的数据 这是我的代码片段 BTSpp.java BluetoothSPP bt=new BluetoothSPP(this); //initialized {...} bt.setOnDataReceivedListener(new BluetoothSPP.OnDataRecei

机器人新手! 基本上,我试图为我的产品制作一个基于BT SPP协议的专有应用程序! 所以我决定使用一个类来处理来自bt设备的传出/传入数据的bt服务

发送数据没问题! 但是,当我尝试接收数据时,无法调用/接收活动类内的数据

这是我的代码片段

BTSpp.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);
            }
        });
DataReceivedListener上的公共接口{ public void onDataReceived(字节[]数据,字符串消息);///用于将数据发送回活动 } ... //这未执行,因为接收数据时日志未运行 公共无效设置OnDataReceivedListener(OnDataReceivedListener侦听器){ d(“TAG”,“setOnDataReceivedListener()返回:”); if(null==mDataReceivedListener) mDataReceivedListener=监听器; } ... //下面是从bt服务读取数据的代码段,以及 //每当我从spp设备接收数据时,它都会显示日志 案例BluetoothState.MESSAGE_读取: 字节[]readBuf=(字节[])msg.obj; String readMessage=新字符串(readBuf); 如果(readBuf!=null&&readBuf.length>0){ if(mDataReceivedListener!=null){ Log.d(“TAG”,“handleMessage()返回:”+mDataReceivedListener);//执行 mDataReceivedListener.onDataReceived(readBuf,readMessage);} } 打破 而在我的活动窗口中,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);
            }
        });
也许这个函数不是从服务类调用的。我简直找不到任何线索! 谁能给我一些建议


提前谢谢你

这里有什么问题?我觉得你的代码很好。这未执行,因为接收数据时日志未运行?当然,当调用
MainActivity.java
中的方法时,它正在运行。感谢您的回复!是的,其他所有使用这种回调方法的方法都可以,除了这个!bt.setOnDataReceivedListener(新BluetoothSPP.OnDataReceivedListener(){}据我所知,这是从服务类默认调用的!但不是执行的!…据我所知,这是从服务类默认调用的…这是完全错误的。为什么它会被服务默认调用。您需要显示更多代码,特别是您的服务类,以便我们了解真正发生的情况。下面是服务库的原始源代码!这是我的源代码--
onDataReceived()
是否被调用?如果不是,则肯定是
BluetoothState中出现了错误。消息\u READ