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"/>
- Android手机遥控Android机顶盒的Demo
- android手机遥控Android机顶盒的Demo
- Android手机遥控Android机顶盒的Demo
- android,手机 遥控,
- android 手机开发和机顶盒开发的区别
- Android 上手机跟机顶盒应用开发的区别
- android 手机开发和机顶盒开发的区别
- Android 手机开发和机顶盒开发的区别
- Android 机顶盒手势、数据分页演示DEMO
- Android 机顶盒手势、数据分页演示DEMO
- Android 手机遥控器控制机顶盒(电视)
- android接触--遥控的配置
- Android 手机开发和机顶盒开发的区别(软件角度)
- Android 手机开发和机顶盒开发的区别(硬件角度)
- Android 手机开发和机顶盒开发的区别(软件角度)
- Android 手机开发和机顶盒开发的区别(软件角度)
- Android 手机开发和机顶盒开发的区别(硬件角度)
- android 手机之间(机顶盒之间) 应用的交互(服务)
- 使用反向代理服务器进行负载均衡
- firefox 不支持 document.all
- 事务的特性
- lr 0 Events 解决办法
- poj 1088滑雪
- Android手机遥控Android机顶盒的Demo
- 有趣的智力题(题目)
- WPF:获取DataGrid控件单元格DataGridCell
- 提升sqlite性能以及事务的简单理解
- 一个三流学校程序员的奋斗
- java正则表达式 非捕获组详解
- "活动桌面"修改桌面背景
- java正则表达式 非捕获组详解
- php常用的函数库