测试android wifi并实现文件传输

package com.example.android.wifidirect;
import android.app.IntentService;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
/**
* A service that process each file transfer request i.e Intent by opening a
* socket connection with the WiFi Direct Group Owner and writing the file
*/
public class FileTransferService extends IntentService {
private static final int SOCKET_TIMEOUT = 5000;
public static final String ACTION_SEND_FILE = "com.example.android.wifidirect.SEND_FILE";
public static final String EXTRAS_FILE_PATH = "file_url";
public static final String EXTRAS_GROUP_OWNER_ADDRESS = "go_host";
public static final String EXTRAS_GROUP_OWNER_PORT = "go_port";
public FileTransferService(String name) {
super(name);
}
public FileTransferService() {
super("FileTransferService");
}
/*
* (non-Javadoc)
* @see android.app.IntentService#onHandleIntent(android.content.Intent)
*/
@Override
protected void onHandleIntent(Intent intent) {
Context context = getApplicationContext();
if (intent.getAction().equals(ACTION_SEND_FILE)) {
String fileUri = intent.getExtras().getString(EXTRAS_FILE_PATH);
String host = intent.getExtras().getString(EXTRAS_GROUP_OWNER_ADDRESS);
Socket socket = new Socket();
int port = intent.getExtras().getInt(EXTRAS_GROUP_OWNER_PORT);
try {
Log.d(WiFiDirectActivity.TAG, "Opening client socket - ");
socket.bind(null);
socket.connect((new InetSocketAddress(host, port)), SOCKET_TIMEOUT);
Log.d(WiFiDirectActivity.TAG, "Client socket - " socket.isConnected());
OutputStream stream = socket.getOutputStream();
ContentResolver cr = context.getContentResolver();
InputStream is = null;
try {
is = cr.openInputStream(Uri.parse(fileUri));
} catch (FileNotFoundException e) {
Log.d(WiFiDirectActivity.TAG, e.toString());
}
DeviceDetailFragment.copyFile(is, stream);
Log.d(WiFiDirectActivity.TAG, "Client: Data written");
} catch (IOException e) {
Log.e(WiFiDirectActivity.TAG, e.getMessage());
} finally {
if (socket != null) {
if (socket.isConnected()) {
try {
socket.close();
} catch (IOException e) {
// Give up
e.printStackTrace();
}
}
}
}
}
}
}
资源文件列表
android.wifidirect/.classpath , 364
__MACOSX/android.wifidirect/._.classpath , 212
android.wifidirect/.DS_Store , 6148
__MACOSX/android.wifidirect/._.DS_Store , 120
android.wifidirect/.project , 854
__MACOSX/android.wifidirect/._.project , 212
android.wifidirect/AndroidManifest.xml , 1661
__MACOSX/android.wifidirect/._AndroidManifest.xml , 212
__MACOSX/android.wifidirect/._assets , 212
android.wifidirect/bin/android.wifidirect.apk , 201635
__MACOSX/android.wifidirect/bin/._android.wifidirect.apk , 212
android.wifidirect/bin/AndroidManifest.xml , 1661
__MACOSX/android.wifidirect/bin/._AndroidManifest.xml , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/BuildConfig.class , 369
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._BuildConfig.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/DeviceDetailFragment$1.class , 2309
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._DeviceDetailFragment$1.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/DeviceDetailFragment$2.class , 1207
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._DeviceDetailFragment$2.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/DeviceDetailFragment$3.class , 1284
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._DeviceDetailFragment$3.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/DeviceDetailFragment$FileServerAsyncTask.class , 3849
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._DeviceDetailFragment$FileServerAsyncTask.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/DeviceDetailFragment.class , 6388
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._DeviceDetailFragment.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/DeviceListFragment$1.class , 915
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._DeviceListFragment$1.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/DeviceListFragment$DeviceActionListener.class , 456
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._DeviceListFragment$DeviceActionListener.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/DeviceListFragment$WiFiPeerListAdapter.class , 2479
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._DeviceListFragment$WiFiPeerListAdapter.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/DeviceListFragment.class , 5022
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._DeviceListFragment.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/FileTransferService.class , 3585
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._FileTransferService.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/R$attr.class , 376
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._R$attr.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/R$color.class , 482
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._R$color.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/R$dimen.class , 481
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._R$dimen.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/R$drawable.class , 630
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._R$drawable.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/R$id.class , 1066
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._R$id.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/R$layout.class , 537
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._R$layout.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/R$menu.class , 432
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._R$menu.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/R$string.class , 948
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._R$string.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/R$style.class , 467
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._R$style.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/R.class , 853
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._R.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/WiFiDirectActivity$1.class , 1380
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._WiFiDirectActivity$1.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/WiFiDirectActivity$2.class , 1153
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._WiFiDirectActivity$2.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/WiFiDirectActivity$3.class , 1547
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._WiFiDirectActivity$3.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/WiFiDirectActivity$4.class , 1374
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._WiFiDirectActivity$4.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/WiFiDirectActivity.class , 6812
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._WiFiDirectActivity.class , 212
android.wifidirect/bin/classes/com/example/android/wifidirect/WiFiDirectBroadcastReceiver.class , 3633
__MACOSX/android.wifidirect/bin/classes/com/example/android/wifidirect/._WiFiDirectBroadcastReceiver.class , 212
__MACOSX/android.wifidirect/bin/classes/com/example/android/._wifidirect , 212
__MACOSX/android.wifidirect/bin/classes/com/example/._android , 212
__MACOSX/android.wifidirect/bin/classes/com/._example , 212
__MACOSX/android.wifidirect/bin/classes/._com , 212
__MACOSX/android.wifidirect/bin/._classes , 212
android.wifidirect/bin/classes.dex , 474620
__MACOSX/android.wifidirect/bin/._classes.dex , 212
android.wifidirect/bin/dexedLibs/android-support-v4-22e086be2e0f6de9860297ddfa4f7d1d.jar , 151838
__MACOSX/android.wifidirect/bin/dexedLibs/._android-support-v4-22e086be2e0f6de9860297ddfa4f7d1d.jar , 212
__MACOSX/android.wifidirect/bin/._dexedLibs , 212
android.wifidirect/bin/res/drawable-hdpi/ic_action_discover.png , 983
__MACOSX/android.wifidirect/bin/res/drawable-hdpi/._ic_action_discover.png , 212
android.wifidirect/bin/res/drawable-hdpi/ic_action_on_off.png , 1005
__MACOSX/android.wifidirect/bin/res/drawable-hdpi/._ic_action_on_off.png , 212
android.wifidirect/bin/res/drawable-hdpi/ic_launcher.png , 5101
__MACOSX/android.wifidirect/bin/res/drawable-hdpi/._ic_launcher.png , 212
android.wifidirect/bin/res/drawable-hdpi/machine.png , 1161
__MACOSX/android.wifidirect/bin/res/drawable-hdpi/._machine.png , 212
__MACOSX/android.wifidirect/bin/res/._drawable-hdpi , 212
android.wifidirect/bin/res/drawable-mdpi/ic_launcher.png , 5057
__MACOSX/android.wifidirect/bin/res/drawable-mdpi/._ic_launcher.png , 212
__MACOSX/android.wifidirect/bin/res/._drawable-mdpi , 212
android.wifidirect/bin/res/drawable-xhdpi/ic_launcher.png , 14068
__MACOSX/android.wifidirect/bin/res/drawable-xhdpi/._ic_launcher.png , 212
__MACOSX/android.wifidirect/bin/res/._drawable-xhdpi , 212
__MACOSX/android.wifidirect/bin/._res , 212
android.wifidirect/bin/resources.ap_ , 38096
__MACOSX/android.wifidirect/bin/._resources.ap_ , 212
__MACOSX/android.wifidirect/._bin , 212
android.wifidirect/gen/com/example/android/wifidirect/BuildConfig.java , 172
__MACOSX/android.wifidirect/gen/com/example/android/wifidirect/._BuildConfig.java , 212
android.wifidirect/gen/com/example/android/wifidirect/R.java , 4605
__MACOSX/android.wifidirect/gen/com/example/android/wifidirect/._R.java , 212
__MACOSX/android.wifidirect/gen/com/example/android/._wifidirect , 212
__MACOSX/android.wifidirect/gen/com/example/._android , 212
__MACOSX/android.wifidirect/gen/com/._example , 212
__MACOSX/android.wifidirect/gen/._com , 212
__MACOSX/android.wifidirect/._gen , 212
android.wifidirect/libs/android-support-v4.jar , 393154
__MACOSX/android.wifidirect/libs/._android-support-v4.jar , 212
__MACOSX/android.wifidirect/._libs , 212
android.wifidirect/proguard-project.txt , 781
__MACOSX/android.wifidirect/._proguard-project.txt , 212
android.wifidirect/project.properties , 563
__MACOSX/android.wifidirect/._project.properties , 212
android.wifidirect/res/drawable-hdpi/details_view.xml , 445
__MACOSX/android.wifidirect/res/drawable-hdpi/._details_view.xml , 212
android.wifidirect/res/drawable-hdpi/ic_action_discover.png , 1425
__MACOSX/android.wifidirect/res/drawable-hdpi/._ic_action_discover.png , 212
android.wifidirect/res/drawable-hdpi/ic_action_on_off.png , 1422
__MACOSX/android.wifidirect/res/drawable-hdpi/._ic_action_on_off.png , 212
android.wifidirect/res/drawable-hdpi/ic_launcher.png , 5919
__MACOSX/android.wifidirect/res/drawable-hdpi/._ic_launcher.png , 212
android.wifidirect/res/drawable-hdpi/machine.png , 3878
__MACOSX/android.wifidirect/res/drawable-hdpi/._machine.png , 212
android.wifidirect/res/drawable-hdpi/section_header.xml , 431
__MACOSX/android.wifidirect/res/drawable-hdpi/._section_header.xml , 212
__MACOSX/android.wifidirect/res/._drawable-hdpi , 212
__MACOSX/android.wifidirect/res/._drawable-ldpi , 212
android.wifidirect/res/drawable-mdpi/ic_launcher.png , 5237
__MACOSX/android.wifidirect/res/drawable-mdpi/._ic_launcher.png , 212
__MACOSX/android.wifidirect/res/._drawable-mdpi , 212
android.wifidirect/res/drawable-xhdpi/ic_launcher.png , 14383
__MACOSX/android.wifidirect/res/drawable-xhdpi/._ic_launcher.png , 212
__MACOSX/android.wifidirect/res/._drawable-xhdpi , 212
android.wifidirect/res/layout/device_detail.xml , 2789
__MACOSX/android.wifidirect/res/layout/._device_detail.xml , 212
android.wifidirect/res/layout/device_list.xml , 2893
__MACOSX/android.wifidirect/res/layout/._device_list.xml , 212
android.wifidirect/res/layout/main.xml , 1103
__MACOSX/android.wifidirect/res/layout/._main.xml , 212
android.wifidirect/res/layout/row_devices.xml , 1280
__MACOSX/android.wifidirect/res/layout/._row_devices.xml , 212
__MACOSX/android.wifidirect/res/._layout , 212
android.wifidirect/res/menu/action_items.xml , 547
__MACOSX/android.wifidirect/res/menu/._action_items.xml , 212
__MACOSX/android.wifidirect/res/._menu , 212
android.wifidirect/res/values/color.xml , 176
__MACOSX/android.wifidirect/res/values/._color.xml , 212
android.wifidirect/res/values/dimens.xml , 169
__MACOSX/android.wifidirect/res/values/._dimens.xml , 212
android.wifidirect/res/values/strings.xml , 1027
__MACOSX/android.wifidirect/res/values/._strings.xml , 212
android.wifidirect/res/values/styles.xml , 695
最多只能显示150条信息!
