您的位置:首页 > 移动开发 > Android开发

android中PC与手机通信

2014-02-26 14:08 323 查看
package com.spring.pc;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.InetAddress;

import java.net.Socket;

import java.net.UnknownHostException;

public class USBClient {

/**

* @param args

* @throws InterruptedException

*/

public static void main(String[] args) throws InterruptedException {

try {

Runtime.getRuntime().exec("adb shell am broadcast -a NotifyServiceStop");

Thread.sleep(3000 );

Runtime.getRuntime().exec("adb forward tcp:12580 tcp:10086" );

Thread.sleep(3000 );

Runtime.getRuntime().exec("adb shell am broadcast -a NotifyServiceStart" );

Thread.sleep(3000 );

} catch (IOException e3) {

// TODO Auto-generated catch block

System.out.println("dddd");

e3.printStackTrace();

}

Socket socket = null ;

try {

InetAddress serverAddr = null ;

serverAddr = InetAddress.getByName("127.0.0.1" );

System.out.println("TCP 1111" + "C: Connecting..." );

socket = new Socket(serverAddr, 12580 );

//String str = "hi,wufenglong" ;

System.out.println("TCP 221122" + "C:RECEIVE" );

BufferedOutputStream out = new BufferedOutputStream(socket

.getOutputStream());

BufferedInputStream in = new BufferedInputStream(socket

.getInputStream());

BufferedReader br = new BufferedReader( new InputStreamReader(

System.in));

boolean flag = true ;

while (flag) {

}

} catch (UnknownHostException e1) {

System.out.println("TCP 331133" + "ERROR:" + e1.toString());

} catch (Exception e2) {

System.out.println("TCP 441144" + "ERROR:" + e2.toString());

} finally {

try {

if (socket != null ) {

socket.close();

System.out.println("socket.close()" );

}

} catch (IOException e) {

System.out.println("TCP 5555" + "ERROR:" + e.toString());

}

}

}

}

package com.spring.server;

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;

public class AndroidService extends Service {

public static final String TAG="TAG";

public static Boolean mainThreadFlag = true;

public static Boolean ioThread = true;

ServerSocket serverSocket = null;

final int SERVER_PORT = 10086;

sysBroadcastReceiver sysBR;

@Override

public IBinder onBind(Intent arg0) {

// TODO Auto-generated method stub

return null;

}

private void sysRegister() {

sysBR = new sysBroadcastReceiver();

IntentFilter filter = new IntentFilter();

filter.addAction("android.intent.action.PACKAGE_ADDED");

filter.addDataScheme("package");

filter.addAction("android.intent.action.PACKAGE_REMOVED");

registerReceiver(sysBR, filter);

}

private class sysBroadcastReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

String action = intent.getAction();

if(action.equalsIgnoreCase("android.intent.action.PACKAGE_ADDED")){

}else if(action.equalsIgnoreCase("android.intent.action.PACKAGE_REMOVED")){

}

}

}

private void doListen() {

serverSocket = null;

try {

serverSocket = new ServerSocket(SERVER_PORT);

boolean mainThreadFlag = true;

while(mainThreadFlag) {

Socket client = serverSocket.accept();

//开始读写操作

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@Override

public void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

mainThreadFlag = false;

ioThread=false;

try {

serverSocket.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@Override

public void onCreate() {

// TODO Auto-generated method stub

super.onCreate();

sysRegister();

new Thread() {

public void run() {

doListen();

}

}.start();

}

}

package com.spring.server;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

public class ServerBroadcastReceiver extends BroadcastReceiver {

private static String START_ACTION ="NotifyServiceStart";

private static String STOP_ACTION ="NotifyServiceStop";

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

String action = intent.getAction();

if(START_ACTION.equalsIgnoreCase(action)) {

context.startService(new Intent(context,AndroidService.class));

}else if(STOP_ACTION.equalsIgnoreCase(action)){

context.stopService(new Intent(context,AndroidService.class));

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: