Google Glass と Android 携帯電話を、コンピューターで実行している NodeJs サーバーに接続して、Android 携帯電話から Google Glass にメッセージを送信できるようにしようとしています。
このために、Im は koush の AndroidAsync ライブラリを使用しています。これは私の Android フォンでうまく機能し、このライブラリを使用して NodeJS サーバーに電話を接続するのにまったく問題はありません。
ただし、同じコードが Google Glass では機能しないようです。私のNodeJSサーバーの接続イベントハンドラーがトリガーされるため、Google Glassは接続しますが、Google GlassでConnectCallback関数をトリガーしていないようです。
Google Glassアプリで使用しているコードは次のとおりです。
SocketIOClient.connect(AsyncHttpClient.getDefaultInstance(), "http://192.168.1.229:5000", new ConnectCallback() {
@Override
public void onConnectCompleted(Exception ex, SocketIOClient client) {
Log.i("SOCKET", "CONNECTION COMPLETED");
if (ex != null) {
ex.printStackTrace();
return;
}
client.setStringCallback(new StringCallback() {
@Override
public void onString(String string, Acknowledge acknowledge) {
Log.d("SOCKET", string);
}
});
client.setJSONCallback(new JSONCallback() {
@Override
public void onJSON(JSONObject jsonObject, Acknowledge acknowledge) {
Log.d("SOCKET", jsonObject.toString());
}
});
client.on("event", new EventCallback() {
@Override
public void onEvent(JSONArray jsonArray, Acknowledge acknowledge) {
Log.i("DATA: ", jsonArray.toString());
Gson gson = new Gson();
}
});
mClient = client;
}
});
}
ご覧のとおり、「onConnectCompleted」関数で「CONNECTION COMPLETED」をログに記録しようとしていますが、起動することはなく、何もログに記録されません。
Androidフォンで同じコードが機能し、Androidフォンでこのコードを実行すると「接続完了」がログに記録されるため、これはかなり奇妙です。最も奇妙なことは、Glass が接続されたときに on connection イベントがサーバー上でトリガーされるため、ノード サーバーが実際に Google Glass を取得することです。
それで、私のGoogle Glassが明らかにNodeJSサーバーに接続しているのに、接続時にイベントをトリガーしていない理由を誰かが見つけてくれますか. (ConnectCallback 関数をトリガーしない場合、「CONNECTION COMPLETED」はログに記録されません)?
前もって感謝します、
ブラム