递归火山软件开发平台

标题: 这段代码如何封装? [打印本页]

作者: kerry    时间: 2024-7-12 17:28
标题: 这段代码如何封装?
  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. }
复制代码
主要就是想通过广播形式来模拟按键操作!

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




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4