android服务器端:
- package eoe.otheri.service;
-
-
- import java.io.File;
- import java.io.IOException;
- import java.net.ServerSocket;
- import java.net.Socket;
- import android.app.Service;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.os.IBinder;
- import android.util.Log;
- /**
- * 设置:android手机
- *
- *
- * */
- public class androidService extends Service {
- public static final String TAG = "TAG";
- public static Boolean mainThreadFlag = true;
- public static Boolean ioThreadFlag = true;
- ServerSocket serverSocket = null;
- final int SERVER_PORT = 10086;
- File testFile;
- private sysBroadcastReceiver sysBR;
-
-
- @Override
- public void onCreate() {
- super.onCreate();
- Log.v(TAG, Thread.currentThread().getName() + "---->" + " onCreate");
- /* 创建内部类sysBroadcastReceiver 并注册registerReceiver */
- sysRegisterReceiver();
- new Thread() {
- public void run() {
- doListen();
- };
- }.start();
- }
-
-
- private void doListen() {
- Log.d(TAG, Thread.currentThread().getName() + "---->"
- + " doListen() START");
- serverSocket = null;
- try {
- Log.d(TAG, Thread.currentThread().getName() + "---->"
- + " doListen() new serverSocket");
- serverSocket = new ServerSocket(SERVER_PORT);
- boolean mainThreadFlag = true;
-
-
- while (mainThreadFlag) {
- Log.d(TAG, Thread.currentThread().getName() + "---->"
- + " doListen() listen");
- Socket client = serverSocket.accept();
- new Thread(new ThreadReadWriterIOSocket(this, client)).start();
- }
- } catch (IOException e1) {
- Log.v(androidService.TAG, Thread.currentThread().getName()
- + "---->" + "new serverSocket error");
- e1.printStackTrace();
- }
- }
- /* 创建内部类sysBroadcastReceiver 并注册registerReceiver */
- private void sysRegisterReceiver() {
- Log.v(TAG, Thread.currentThread().getName() + "---->"
- + "sysRegisterReceiver");
- sysBR = new sysBroadcastReceiver();
- /* 注册BroadcastReceiver */
- IntentFilter filter1 = new IntentFilter();
- /* 新的应用程序被安装到了设备上的广播 */
- filter1.addAction("android.intent.action.PACKAGE_ADDED");
- filter1.addDataScheme("package");
- filter1.addAction("android.intent.action.PACKAGE_REMOVED");
- filter1.addDataScheme("package");
- registerReceiver(sysBR, filter1);
- }
-
-
- /* 内部类:BroadcastReceiver 用于接收系统事件 */
- private class sysBroadcastReceiver extends BroadcastReceiver {
-
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (action.equalsIgnoreCase("android.intent.action.PACKAGE_ADDED")) {
- // ReadInstalledAPP();
- } else if (action
- .equalsIgnoreCase("android.intent.action.PACKAGE_REMOVED")) {
- // ReadInstalledAPP();
- }
- Log.v(TAG, Thread.currentThread().getName() + "---->"
- + "sysBroadcastReceiver onReceive");
- }
- }
- @Override
- public void onDestroy() {
- super.onDestroy();
- // 关闭线程
- mainThreadFlag = false;
- ioThreadFlag = false;
- // 关闭服务器
- try {
- Log.v(TAG, Thread.currentThread().getName() + "---->"
- + "serverSocket.close()");
- serverSocket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- Log.v(TAG, Thread.currentThread().getName() + "---->"
- + "**************** onDestroy****************");
- }
-
-
- @Override
- public void onStart(Intent intent, int startId) {
- Log.d(TAG, Thread.currentThread().getName() + "---->" + " onStart()");
- super.onStart(intent, startId);
- }
-
-
- @Override
- public IBinder onBind(Intent arg0) {
- Log.d(TAG, " onBind");
- return null;
- }
- }