高速公路不在真正的Android设备上工作

时间:2014-03-19 20:00:33

标签: android autobahn

ScreenShot嗨,我正在为Autobahn Library尝试BroadCastClient演示。

它在Emulator上工作正常,成功连接服务器,但是当我在真正的Android设备上安装时,它无法正常工作,无法连接到服务器。

在这两种情况下我使用的是Localhost。我能够从浏览器连接到Localhost。

static final String TAG = "de.tavendo.autobahn.broadcast";
  private static final String PREFS_NAME = "AutobahnAndroidBroadcast";

  static EditText mHostname;
  static EditText mPort;
  static TextView mStatusline;
  static Button mStart;

  static EditText mMessage;
  static Button mSendMessage;

  static TextView mLog;
  static ScrollView mLogScroller;

  private SharedPreferences mSettings;

  private void alert(String message) {
     Toast toast = Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT);
     toast.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0);
     toast.show();
  }

  private void loadPrefs() {

     mHostname.setText(mSettings.getString("hostname", "Localhost"));
     mPort.setText(mSettings.getString("port", "9000"));
  }

  private void savePrefs() {

     SharedPreferences.Editor editor = mSettings.edit();
     editor.putString("hostname", mHostname.getText().toString());
     editor.putString("port", mPort.getText().toString());
     editor.commit();
  }

  private void setButtonConnect() {
     mHostname.setEnabled(true);
     mPort.setEnabled(true);
     mStart.setText("Connect");
     mStart.setOnClickListener(new Button.OnClickListener() {
        public void onClick(View v) {
           start();
        }
     });
  }

  private void setButtonDisconnect() {
     mHostname.setEnabled(false);
     mPort.setEnabled(false);
     mStart.setText("Disconnect");
     mStart.setOnClickListener(new Button.OnClickListener() {
        public void onClick(View v) {
           mConnection.disconnect();
        }
     });
  }

  private final WebSocket mConnection = new WebSocketConnection();

  private void start() {

     final String wsuri = "ws://" + mHostname.getText() + ":" + mPort.getText();

     mStatusline.setText("Status: Connecting to " + wsuri + " ..");

     setButtonDisconnect();

     try {
        mConnection.connect(wsuri, new WebSocketConnectionHandler() {
           @Override
           public void onOpen() {
              mStatusline.setText("Status: Connected to " + wsuri);
              savePrefs();
              mSendMessage.setEnabled(true);
              mMessage.setEnabled(true);
           }

           @Override
           public void onTextMessage(String payload) {
              mLog.setText(mLog.getText() + "\n" + payload);
              mLogScroller.post(new Runnable()
              {
                  public void run()
                  {
                     mLogScroller.smoothScrollTo(0, mLog.getBottom());
                  }
              });
           }

           @Override
           public void onClose(int code, String reason) {
              alert("Connection lost.");
              mStatusline.setText("Status: Ready.");
              setButtonConnect();
              mSendMessage.setEnabled(false);
              mMessage.setEnabled(false);
           }
        });
     } catch (WebSocketException e) {

        Log.d(TAG, e.toString());
     }
  }

  @Override
  public void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

     mHostname = (EditText) findViewById(R.id.hostname);
     mPort = (EditText) findViewById(R.id.port);
     mStatusline = (TextView) findViewById(R.id.statusline);
     mStart = (Button) findViewById(R.id.start);
     mMessage = (EditText) findViewById(R.id.msg);
     mSendMessage = (Button) findViewById(R.id.sendMsg);
     mLog = (TextView) findViewById(R.id.log);
     mLogScroller = (ScrollView) findViewById(R.id.logscroller);

     mSettings = getSharedPreferences(PREFS_NAME, 0);
     loadPrefs();

     setButtonConnect();
     mSendMessage.setEnabled(false);
     mMessage.setEnabled(false);

     mSendMessage.setOnClickListener(new Button.OnClickListener() {
        public void onClick(View v) {
           mConnection.sendTextMessage(mMessage.getText().toString());
        }
     });
  }

  @Override
  protected void onDestroy() {
      super.onDestroy();
      if (mConnection.isConnected()) {
         mConnection.disconnect();
      }
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      MenuInflater inflater = getMenuInflater();
      inflater.inflate(R.menu.main, menu);
      return true;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
     switch (item.getItemId()) {
        case R.id.quit:
           finish();
           break;
        default:
           return super.onOptionsItemSelected(item);
     }
     return true;
  }

0 个答案:

没有答案
相关问题