2015-12-20 57 views
0

我正在使用android版本4.1.1的Android手機。 。我的工作正常。我可以通過TCP/IP將電話中的字符串數據傳輸到我的PC中的VB應用程序。但是,如果我使用我的其他手機,與Android版本4.4.4 kitkat ..我仍然可以正確安裝.apk文件並運行它..但它不會執行其功能,同樣適用於我的其他手機4.0.1。爲什麼我的android TCP客戶端應用程序不會在其他手機上工作?

這裏是我的代碼:

XML文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="hello" 
    /> 
<EditText 
    android:id="@+id/textout" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    /> 
<Button 
    android:id="@+id/buttonSend" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Send" 
    /> 
<TextView 
    android:id="@+id/textin" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    /> 

JAVA文件:

public class MainActivity extends Activity { 

EditText textOut; 
TextView textIn; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    textOut = (EditText)findViewById(R.id.textout); 
    Button buttonSend = (Button)findViewById(R.id.buttonSend); 
    textIn = (TextView)findViewById(R.id.textin); 
    buttonSend.setOnClickListener(buttonSendOnClickListener); 




} 

Button.OnClickListener buttonSendOnClickListener 
     = new Button.OnClickListener(){ 

    @Override 
    public void onClick(View arg0) { 

     // TODO Auto-generated method stub 
     Socket socket = null; 
     DataOutputStream dataOutputStream = null; 
     DataInputStream dataInputStream = null; 

     try{ 
      // Creating new socket connection to the IP (first parameter) and its opened port (second parameter) 
      Socket s = new Socket("192.168.1.3", 65535); 

      // Initialize output stream to write message to the socket stream 
      BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); 

      String outMsg = ""; 

      outMsg = textOut.getText().toString(); 

      // Write message to stream 
      out.write(outMsg); 

      // Flush the data from the stream to indicate end of message 
      out.flush(); 

      // Close the output stream 
      out.close(); 

      // Close the socket connection 
      s.close(); 
     } 

     catch(Exception ex){ 
      //:TODO Handle exceptions 
     } 
    }}; 

}

是否有任何與API級別是嗎? minsdkversion和targetsdkversion? 請幫助我..即將到來的瘋狂。 HAHA XD提前致謝。

+0

您不必發佈完整的xml文件和活動代碼。你應該準確地告訴什麼不起作用。 – greenapps

+0

我不能發送數據,當我使用其他Android手機..但即時通訊使用4.1.1 ..它工作正常.. – gianueva

回答

1

您無法在點擊處理程序中創建套接字連接。你將有一個NetworkOnMainThreadException。把這樣的代碼放在一個線程或AsyncTask中。

你的代碼也不應該在4.1.1上工作。

+0

謝謝先生!它解決了這個問題^ _ ^ – gianueva

相關問題