私はこのAndroid Emitter.Listener not working 質問と同じ問題を抱えていますが、その質問の答えは役に立たなかったし、誰でもこの問題を解決するのを手伝ってもらえますか?イベントのエミッタが正常に動作していますが、私はJSから発せられた情報を受け取ることができません
私のコードでは、ファイルを保存してリンクを私に送り返すnode.jsサーバーにbase64文字列を送信します(ファイルの保存は正常に動作しています)。リンクがトーストされていません。
私のコードは次のとおりです。
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
socket.connect();
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
socket.on("data", handleIncomingMessage);
}
});}
//Onclick of a button
JSONObject obj=new JSONObject();
try {
obji.put("profile_pic",image);
socket.emit("data",obji);
} catch (JSONException e) {
e.printStackTrace();
}
private Emitter.Listener handleIncomingMessage = new Emitter.Listener(){
@Override
public void call(final Object... args){
Toast.makeText(getActivity().getApplicationContext(),"Hello India",Toast.LENGTH_LONG).show();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
JSONObject data = (JSONObject) args[0];
//JSONObject d=(JSONObject) args[1];
String imgLink;
try {
imgLink = data.getString("data").toString();
Glide.with(getContext()).load(imgLink).asBitmap().dontAnimate().into(imageView);
Toast.makeText(getActivity().getApplicationContext(),imgLink,Toast.LENGTH_LONG).show();
} catch (JSONException e) {
Toast.makeText(getActivity().getApplicationContext(),e.toString(),Toast.LENGTH_LONG).show();
}
}
});
}
};
回答がありました! –