Android手机遥控Android机顶盒的Demo

来源:互联网 发布:单链表反转 java 编辑:程序博客网 时间:2024/06/09 17:11

因为公司要实现此功能,故先搞个最简单的测试下可行性!


原理很简单,就是采用socket与serversocket直接的通信!!暂不考虑重力等数据的传递,只传递了KeyDown事件!


实在太易容了,不多说直接贴代码

机顶盒端代码:

package cn.tvsr.remotedemo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.widget.Toast;public class RemoteDemoActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        new Thread(new Runnable() {@Overridepublic void run() {ServerSocket server;  try {     server = new ServerSocket(6868);     System.out.println("Tvsr:Server Started!");     while(true){  System.out.println("Tvsr:Server Runing!");      Socket client = server.accept();      InputStream ins = client.getInputStream();      BufferedReader br = new BufferedReader(new InputStreamReader(ins));      final String tmp = br.readLine();      final int keyCode = Integer.parseInt(tmp);    runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(getApplicationContext(), "Tvsr:Message received!-->keyCode:"+tmp,Toast.LENGTH_LONG).show();System.out.println("Tvsr:Message received!-->keyCode:"+tmp);  RemoteDemoActivity.this.onKeyDown(keyCode, new KeyEvent(KeyEvent.ACTION_DOWN, keyCode));}});   } } catch (IOException e) {      e.printStackTrace();  }  }}).start();            }}

手机端代码:

package cn.tvsr.controldemo;import java.io.IOException;import java.io.OutputStream;import java.io.PrintStream;import java.net.Socket;import java.net.UnknownHostException;import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.widget.Toast;public class ControlDemoActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {Toast.makeText(getApplicationContext(),"keyCode:"+keyCode, Toast.LENGTH_LONG).show();        try {          Socket socket = new Socket("192.168.5.101", 6868);          OutputStream os = socket.getOutputStream();          PrintStream ps = new PrintStream(os);          ps.println(keyCode);          ps.flush();          ps.close();          os.close();          socket.close();       } catch (UnknownHostException e) {       System.out.println("Tvsr:Server err!");      e.printStackTrace();     } catch (IOException e) {       System.out.println("Tvsr:Server err!");      e.printStackTrace();     } return super.onKeyDown(keyCode, event);}            }

结束!此次重点测试socket与serversocket之间的通信!


记得加上:<uses-permission android:name="android.permission.INTERNET"/> 


原创粉丝点击