递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 757|回复: 1
打印 上一主题 下一主题

[安卓] 这段代码如何封装?

[复制链接]

28

主题

124

帖子

1042

积分

金牌会员

Rank: 6Rank: 6

积分
1042
跳转到指定楼层
楼主
发表于 2024-7-12 17:28:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. import android.content.Context;
  2. import android.content.Intent;
  3. import android.view.KeyEvent;

  4. public class TVServer {
  5.     private ServerSocket serverSocket;
  6.     private Context context;

  7.     public TVServer(Context context) {
  8.         this.context = context;
  9.         try {
  10.             serverSocket = new ServerSocket(8080);
  11.         } catch (IOException e) {
  12.             e.printStackTrace();
  13.         }
  14.     }

  15.     public void startServer() {
  16.         new Thread(() -> {
  17.             while (true) {
  18.                 try {
  19.                     Socket clientSocket = serverSocket.accept();
  20.                     BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
  21.                     String command = in.readLine();
  22.                     handleCommand(command);
  23.                     clientSocket.close();
  24.                 } catch (IOException e) {
  25.                     e.printStackTrace();
  26.                 }
  27.             }
  28.         }).start();
  29.     }

  30.     private void handleCommand(String command) {
  31.         switch (command) {
  32.             case Command.UP:
  33.                 sendKeyEvent(KeyEvent.KEYCODE_DPAD_UP);
  34.                 break;
  35.             case Command.DOWN:
  36.                 sendKeyEvent(KeyEvent.KEYCODE_DPAD_DOWN);
  37.                 break;
  38.             case Command.LEFT:
  39.                 sendKeyEvent(KeyEvent.KEYCODE_DPAD_LEFT);
  40.                 break;
  41.             case Command.RIGHT:
  42.                 sendKeyEvent(KeyEvent.KEYCODE_DPAD_RIGHT);
  43.                 break;
  44.             case Command.HOME:
  45.                 sendKeyEvent(KeyEvent.KEYCODE_HOME);
  46.                 break;
  47.             case Command.BACK:
  48.                 sendKeyEvent(KeyEvent.KEYCODE_BACK);
  49.                 break;
  50.         }
  51.     }

  52.     private void sendKeyEvent(int keyCode) {
  53.         Intent intent = new Intent(Intent.ACTION_MEDIA_BUTTON);
  54.         intent.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, keyCode));
  55.         context.sendBroadcast(intent);

  56.         intent.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, keyCode));
  57.         context.sendBroadcast(intent);
  58.     }
  59. }
复制代码
主要就是想通过广播形式来模拟按键操作!
回复

使用道具 举报

36

主题

444

帖子

1550

积分

金牌会员

Rank: 6Rank: 6

积分
1550
QQ
沙发
发表于 2024-7-15 09:05:49 | 只看该作者
封装教程不亲民 新手看的云里雾里
会封装的没时间搞
想封装的又不会搞
呼吁官方 抽一天时间 多出几个封装的例子
广大群众好照猫画虎的 封装下自己用的功能
顺便发上来 以后其他人在用这功能 不用重复造轮子
Q 75520266
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-9-24 13:37 , Processed in 0.081796 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表