2013-03-12 59 views
0

請不要生我的氣。我有兩個問題,我想的主題非常相似,所以我決定將它們合併爲一個。我有我的應用程序在Android上使用傳感器來做一些計算。我在那裏存儲在我的數據庫sesults。我想要做的是將數據從我的手機發送到我的桌面應用程序也與數據庫(按鈕單擊)。android:與PC桌面應用和遠程媒體播放器控制器通信

更確切地說,這裏是一個例子:我的光傳感器讀取當前的光強度。可以說這是1000lux。現在,當我點擊我的android應用程序中的「發送」按鈕時,它會將此值發送到我的桌面應用程序數據庫。該桌面應用會讀取該值並將其顯示給用戶。

可以通過WIFI嗎?或更好的通過網絡,所以我不會被限制距離? android如何管理這種通信?

而我的第二個問題是,如果控制我的電腦上的媒體播放器與我所說的類似。

編輯:

我做了一些研究,發現一個套接字教程。我嘗試了它,就像它在那裏。所以我有這個在我的Android應用:

public class Client extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_client); 
    Client myCli = new Client(); 
    try { 
     myCli.run(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_client, menu); 
    return true; 
} 


public void run() throws Exception { 

    Socket mySkt = new Socket("192.168.1.6", 9999); 

    PrintStream myPS = new PrintStream(mySkt.getOutputStream()); 

    myPS.println("Hello server"); 

    BufferedReader myBR = new BufferedReader 
    (new InputStreamReader(mySkt.getInputStream())); 


} 

}

,這在NetBeans:

//Author: WarLordTech 
//Website: http://www.youtube.com/user/WarLordTech 
import java.io.*; 
import java.net.*; 

public class Server { 
    public static void main(String[] args) throws Exception{ 
     Server myServ = new Server(); 
     myServ.run(); 
    } 

    public void run() throws Exception{ 
     ServerSocket mySS = new ServerSocket(9999); 
     Socket SS_accept = mySS.accept(); 

     BufferedReader SS_BF= new BufferedReader(new InputStreamReader 
     (SS_accept.getInputStream())); 

     String temp = SS_BF.readLine(); 
     System.out.println(temp); 

     if (temp!=null) { 
     PrintStream SSPS = new PrintStream(SS_accept.getOutputStream()); 
     SSPS.println("Got something"); 
     } 
    } 
} 

它仍然心不是workiong。我必須以某種方式設置我的網絡嗎?

+0

您是否找到了答案?您的編輯答案看起來正確。有什麼問題? – Sourabh86 2015-03-09 04:52:18

回答

0

你可以使用TCP套接字。許多語言都實現了Socket編程,因此您需要用Java編寫桌面應用程序(當然這總是可行的!)。

Socket Tutorial in Java

這會工作過網和本地的無線網絡。您可以使用其他方法用於本地WiFi,例如UDP連接。你需要設置一個TCP服務器,並確保你有訪問等。

可能還有其他方法可以做到這一點,但這並不是一件容易的事情!

+0

謝謝你的幫助。這是我的桌面應用程序,但我有什麼與我的Android應用程序?這也適用於android? – 2013-03-12 16:16:58

+0

是的,同樣的事情 - 如果你用Java編寫你的應用程序,那麼它可以使用套接字。然後它只是使用你的手機上的任何數據連接,例如wifi,3G連接。 – Davos555 2013-03-13 09:09:32