PC 与 Android 的adb同步通信(三)

android服务器端:

  1. package eoe.otheri.service; 


  2. import java.io.File; 
  3. import java.io.IOException; 
  4. import java.net.ServerSocket; 
  5. import java.net.Socket; 
  6. import android.app.Service; 
  7. import android.content.BroadcastReceiver; 
  8. import android.content.Context; 
  9. import android.content.Intent; 
  10. import android.content.IntentFilter; 
  11. import android.os.IBinder; 
  12. import android.util.Log; 
  13. /** 
  14. * 设置:android手机 


  15. * */ 
  16. public class androidService extends Service { 
  17. public static final String TAG = "TAG"; 
  18. public static Boolean mainThreadFlag = true; 
  19. public static Boolean ioThreadFlag = true; 
  20. ServerSocket serverSocket = null; 
  21. final int SERVER_PORT = 10086; 
  22. File testFile; 
  23. private sysBroadcastReceiver sysBR; 


  24. @Override 
  25. public void onCreate() { 
  26. super.onCreate(); 
  27. Log.v(TAG, Thread.currentThread().getName() + "---->" + " onCreate"); 
  28. /* 创建内部类sysBroadcastReceiver 并注册registerReceiver */ 
  29. sysRegisterReceiver(); 
  30. new Thread() { 
  31. public void run() { 
  32. doListen(); 
  33. }; 
  34. }.start(); 



  35. private void doListen() { 
  36. Log.d(TAG, Thread.currentThread().getName() + "---->" 
  37. + " doListen() START"); 
  38. serverSocket = null; 
  39. try { 
  40. Log.d(TAG, Thread.currentThread().getName() + "---->" 
  41. + " doListen() new serverSocket"); 
  42. serverSocket = new ServerSocket(SERVER_PORT); 
  43. boolean mainThreadFlag = true; 


  44. while (mainThreadFlag) { 
  45. Log.d(TAG, Thread.currentThread().getName() + "---->" 
  46. + " doListen() listen"); 
  47. Socket client = serverSocket.accept(); 
  48. new Thread(new ThreadReadWriterIOSocket(this, client)).start(); 

  49. } catch (IOException e1) { 
  50. Log.v(androidService.TAG, Thread.currentThread().getName() 
  51. + "---->" + "new serverSocket error"); 
  52. e1.printStackTrace(); 


  53. /* 创建内部类sysBroadcastReceiver 并注册registerReceiver */ 
  54. private void sysRegisterReceiver() { 
  55. Log.v(TAG, Thread.currentThread().getName() + "---->" 
  56. + "sysRegisterReceiver"); 
  57. sysBR = new sysBroadcastReceiver(); 
  58. /* 注册BroadcastReceiver */ 
  59. IntentFilter filter1 = new IntentFilter(); 
  60. /* 新的应用程序被安装到了设备上的广播 */ 
  61. filter1.addAction("android.intent.action.PACKAGE_ADDED"); 
  62. filter1.addDataScheme("package"); 
  63. filter1.addAction("android.intent.action.PACKAGE_REMOVED"); 
  64. filter1.addDataScheme("package"); 
  65. registerReceiver(sysBR, filter1); 



  66. /* 内部类:BroadcastReceiver 用于接收系统事件 */ 
  67. private class sysBroadcastReceiver extends BroadcastReceiver { 

  68. @Override 
  69. public void onReceive(Context context, Intent intent) { 
  70. String action = intent.getAction(); 
  71. if (action.equalsIgnoreCase("android.intent.action.PACKAGE_ADDED")) { 
  72. // ReadInstalledAPP(); 
  73. } else if (action 
  74. .equalsIgnoreCase("android.intent.action.PACKAGE_REMOVED")) { 
  75. // ReadInstalledAPP(); 

  76. Log.v(TAG, Thread.currentThread().getName() + "---->" 
  77. + "sysBroadcastReceiver onReceive"); 


  78. @Override 
  79. public void onDestroy() { 
  80. super.onDestroy(); 
  81. // 关闭线程 
  82. mainThreadFlag = false; 
  83. ioThreadFlag = false; 
  84. // 关闭服务器 
  85. try { 
  86. Log.v(TAG, Thread.currentThread().getName() + "---->" 
  87. + "serverSocket.close()"); 
  88. serverSocket.close(); 
  89. } catch (IOException e) { 
  90. e.printStackTrace(); 

  91. Log.v(TAG, Thread.currentThread().getName() + "---->" 
  92. + "**************** onDestroy****************"); 



  93. @Override 
  94. public void onStart(Intent intent, int startId) { 
  95. Log.d(TAG, Thread.currentThread().getName() + "---->" + " onStart()"); 
  96. super.onStart(intent, startId); 



  97. @Override 
  98. public IBinder onBind(Intent arg0) { 
  99. Log.d(TAG, " onBind"); 
  100. return null; 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值