├── bin ├── classes.dex ├── resources.ap_ ├── WiFiDirectDemo.apk ├── res │ ├── drawable │ │ └── machine.png │ ├── drawable-hdpi │ │ ├── icon.png │ │ ├── ic_launcher.png │ │ ├── ic_action_on_off.png │ │ └── ic_action_discover.png │ ├── drawable-ldpi │ │ ├── icon.png │ │ ├── ic_launcher.png │ │ ├── ic_action_on_off.png │ │ └── ic_action_discover.png │ ├── drawable-mdpi │ │ ├── icon.png │ │ ├── ic_launcher.png │ │ ├── ic_action_on_off.png │ │ └── ic_action_discover.png │ └── drawable-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_action_on_off.png │ │ └── ic_action_discover.png ├── classes │ └── com │ │ └── example │ │ └── android │ │ └── wifidirect │ │ ├── R.class │ │ ├── R$id.class │ │ ├── R$attr.class │ │ ├── R$menu.class │ │ ├── Utils.class │ │ ├── R$color.class │ │ ├── R$dimen.class │ │ ├── R$layout.class │ │ ├── R$string.class │ │ ├── BuildConfig.class │ │ ├── R$drawable.class │ │ ├── DeviceListFragment.class │ │ ├── FileTransferService.class │ │ ├── WiFiDirectActivity.class │ │ ├── DeviceDetailFragment.class │ │ ├── DeviceListFragment$1.class │ │ ├── WiFiDirectActivity$1.class │ │ ├── WiFiDirectActivity$2.class │ │ ├── WiFiDirectActivity$3.class │ │ ├── WiFiDirectActivity$4.class │ │ ├── DeviceDetailFragment$1.class │ │ ├── DeviceDetailFragment$2.class │ │ ├── DeviceDetailFragment$3.class │ │ ├── WiFiDirectBroadcastReceiver.class │ │ ├── DeviceDetailFragment$ServerAsyncTask.class │ │ ├── DeviceListFragment$DeviceActionListener.class │ │ └── DeviceListFragment$WiFiPeerListAdapter.class └── AndroidManifest.xml ├── res ├── drawable │ ├── machine.png │ ├── section_header.xml │ └── details_view.xml ├── drawable-hdpi │ ├── icon.png │ ├── ic_launcher.png │ ├── ic_action_on_off.png │ └── ic_action_discover.png ├── drawable-ldpi │ ├── icon.png │ ├── ic_launcher.png │ ├── ic_action_on_off.png │ └── ic_action_discover.png ├── drawable-mdpi │ ├── icon.png │ ├── ic_launcher.png │ ├── ic_action_on_off.png │ └── ic_action_discover.png ├── drawable-xhdpi │ ├── ic_launcher.png │ ├── ic_action_on_off.png │ └── ic_action_discover.png ├── values │ ├── colors.xml │ ├── dimens.xml │ └── strings.xml ├── menu │ └── action_items.xml ├── layout-large │ └── main.xml ├── layout │ ├── main.xml │ ├── row_devices.xml │ ├── device_detail.xml │ └── device_list.xml └── layout-land │ └── main.xml ├── assets └── sample_file.txt ├── gen └── com │ └── example │ └── android │ └── wifidirect │ ├── BuildConfig.java │ └── R.java ├── .classpath ├── README ├── project.properties ├── .project ├── AndroidManifest.xml └── src └── com └── example └── android └── wifidirect ├── FileTransferService.java ├── Utils.java ├── WiFiDirectBroadcastReceiver.java ├── DeviceListFragment.java ├── WiFiDirectActivity.java └── DeviceDetailFragment.java /bin/classes.dex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes.dex -------------------------------------------------------------------------------- /bin/resources.ap_: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/resources.ap_ -------------------------------------------------------------------------------- /bin/WiFiDirectDemo.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/WiFiDirectDemo.apk -------------------------------------------------------------------------------- /res/drawable/machine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable/machine.png -------------------------------------------------------------------------------- /bin/res/drawable/machine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable/machine.png -------------------------------------------------------------------------------- /res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /bin/res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /bin/res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /bin/res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /bin/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /bin/res/drawable-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /bin/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /bin/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_action_on_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-hdpi/ic_action_on_off.png -------------------------------------------------------------------------------- /res/drawable-ldpi/ic_action_on_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-ldpi/ic_action_on_off.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_action_on_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-mdpi/ic_action_on_off.png -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_action_discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-hdpi/ic_action_discover.png -------------------------------------------------------------------------------- /res/drawable-ldpi/ic_action_discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-ldpi/ic_action_discover.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_action_discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-mdpi/ic_action_discover.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_action_on_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-xhdpi/ic_action_on_off.png -------------------------------------------------------------------------------- /bin/res/drawable-hdpi/ic_action_on_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-hdpi/ic_action_on_off.png -------------------------------------------------------------------------------- /bin/res/drawable-ldpi/ic_action_on_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-ldpi/ic_action_on_off.png -------------------------------------------------------------------------------- /bin/res/drawable-mdpi/ic_action_on_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-mdpi/ic_action_on_off.png -------------------------------------------------------------------------------- /bin/res/drawable-xhdpi/ic_action_on_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-xhdpi/ic_action_on_off.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_action_discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/res/drawable-xhdpi/ic_action_discover.png -------------------------------------------------------------------------------- /bin/res/drawable-hdpi/ic_action_discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-hdpi/ic_action_discover.png -------------------------------------------------------------------------------- /bin/res/drawable-ldpi/ic_action_discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-ldpi/ic_action_discover.png -------------------------------------------------------------------------------- /bin/res/drawable-mdpi/ic_action_discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-mdpi/ic_action_discover.png -------------------------------------------------------------------------------- /bin/res/drawable-xhdpi/ic_action_discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/res/drawable-xhdpi/ic_action_discover.png -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/R.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/R.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/R$id.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/R$id.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/R$attr.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/R$attr.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/R$menu.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/R$menu.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/Utils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/Utils.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/R$color.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/R$color.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/R$dimen.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/R$dimen.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/R$layout.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/R$layout.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/R$string.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/R$string.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/BuildConfig.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/BuildConfig.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/R$drawable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/R$drawable.class -------------------------------------------------------------------------------- /assets/sample_file.txt: -------------------------------------------------------------------------------- 1 | This is a sample text file for wifi_direct demo. 2 | 3 | Once the devices are connected, the server i.e. groupOwner will listen for incoming connections and write this file. -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/DeviceListFragment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/DeviceListFragment.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/FileTransferService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/FileTransferService.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/WiFiDirectActivity.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/WiFiDirectActivity.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/DeviceDetailFragment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/DeviceDetailFragment.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/DeviceListFragment$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/DeviceListFragment$1.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/WiFiDirectActivity$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/WiFiDirectActivity$1.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/WiFiDirectActivity$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/WiFiDirectActivity$2.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/WiFiDirectActivity$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/WiFiDirectActivity$3.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/WiFiDirectActivity$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/WiFiDirectActivity$4.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/DeviceDetailFragment$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/DeviceDetailFragment$1.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/DeviceDetailFragment$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/DeviceDetailFragment$2.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/DeviceDetailFragment$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/DeviceDetailFragment$3.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/WiFiDirectBroadcastReceiver.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/WiFiDirectBroadcastReceiver.class -------------------------------------------------------------------------------- /res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FF000000 4 | #FF111111 5 | 6 | -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/DeviceDetailFragment$ServerAsyncTask.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/DeviceDetailFragment$ServerAsyncTask.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/DeviceListFragment$DeviceActionListener.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/DeviceListFragment$DeviceActionListener.class -------------------------------------------------------------------------------- /bin/classes/com/example/android/wifidirect/DeviceListFragment$WiFiPeerListAdapter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmontero/wifi-direct-demo/HEAD/bin/classes/com/example/android/wifidirect/DeviceListFragment$WiFiPeerListAdapter.class -------------------------------------------------------------------------------- /gen/com/example/android/wifidirect/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package com.example.android.wifidirect; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /res/drawable/section_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 14 | 16 | 17 | -------------------------------------------------------------------------------- /res/drawable/details_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | This project is based on the original demo from Google. The original example show us how to send an image file 2 | from the client to the group owner. With this version, I try to show how to send data between two devices (be group owner or not). 3 | 4 | ========== 5 | How To Use 6 | ========== 7 | 1. Import into Eclipse 8 | 9 | 2. Run in your device! 10 | 11 | ===== 12 | NOTES 13 | ===== 14 | The program has been tested on two Samsung Nexus devices both runnig Android 4.1.1 15 | 16 | The devices were resetted to factory default. 17 | 18 | This code is not appropriate for production or comercial uses. 19 | -------------------------------------------------------------------------------- /res/menu/action_items.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-16 15 | -------------------------------------------------------------------------------- /res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 300dp 19 | 200dp 20 | 21 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | WiFiDirectDemo 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /res/layout-large/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 7 | 10 | 11 | 12 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | WiFi Direct 4 | P2P On/Off 5 | Discover 6 | Connect 7 | Disconnect 8 | Launch Gallery 9 | 10 | yes 11 | no 12 | This device will act as a client. Click on Gallery button to pick a local(stored) file 13 | No devices found. Turn on P2P and perform discovery from the Action Bar 14 | Enable P2P from action bar button above or system settings 15 | "Am I the Group Owner? " 16 | ME 17 | PEERS 18 | 19 | -------------------------------------------------------------------------------- /res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 12 | 17 | 18 | 19 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /res/layout-land/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 12 | 17 | 18 | 19 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /res/layout/row_devices.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 14 | 19 | 25 | 32 | 33 | -------------------------------------------------------------------------------- /AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 21 | 24 | 25 | 27 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /bin/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 21 | 24 | 25 | 27 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/com/example/android/wifidirect/FileTransferService.java: -------------------------------------------------------------------------------- 1 | // Copyright 2011 Google Inc. All Rights Reserved. 2 | 3 | package com.example.android.wifidirect; 4 | 5 | import java.io.FileNotFoundException; 6 | import java.io.IOException; 7 | import java.io.InputStream; 8 | import java.io.OutputStream; 9 | import java.net.InetSocketAddress; 10 | import java.net.Socket; 11 | 12 | import android.app.IntentService; 13 | import android.content.ContentResolver; 14 | import android.content.Context; 15 | import android.content.Intent; 16 | import android.net.Uri; 17 | import android.util.Log; 18 | 19 | /** 20 | * A service that process each file transfer request i.e Intent by opening a 21 | * socket connection with the WiFi Direct Group Owner and writing the file 22 | */ 23 | public class FileTransferService extends IntentService { 24 | 25 | private static final int SOCKET_TIMEOUT = 5000; 26 | public static final String ACTION_SEND_FILE = "com.example.android.wifidirect.SEND_FILE"; 27 | public static final String EXTRAS_FILE_PATH = "file_url"; 28 | public static final String EXTRAS_ADDRESS = "go_host"; 29 | public static final String EXTRAS_PORT = "go_port"; 30 | 31 | public FileTransferService(String name) { 32 | super(name); 33 | } 34 | 35 | public FileTransferService() { 36 | super("FileTransferService"); 37 | } 38 | 39 | /* 40 | * (non-Javadoc) 41 | * @see android.app.IntentService#onHandleIntent(android.content.Intent) 42 | */ 43 | @Override 44 | protected void onHandleIntent(Intent intent) { 45 | 46 | Context context = getApplicationContext(); 47 | if (intent.getAction().equals(ACTION_SEND_FILE)) { 48 | String fileUri = intent.getExtras().getString(EXTRAS_FILE_PATH); 49 | String host = intent.getExtras().getString(EXTRAS_ADDRESS); 50 | Socket socket = new Socket(); 51 | int port = intent.getExtras().getInt(EXTRAS_PORT); 52 | 53 | try { 54 | Log.d(WiFiDirectActivity.TAG, "Opening client socket - "); 55 | socket.bind(null); 56 | socket.connect((new InetSocketAddress(host, port)), SOCKET_TIMEOUT); 57 | 58 | Log.d(WiFiDirectActivity.TAG, "Client socket - " + socket.isConnected()); 59 | OutputStream stream = socket.getOutputStream(); 60 | ContentResolver cr = context.getContentResolver(); 61 | InputStream is = null; 62 | try { 63 | is = cr.openInputStream(Uri.parse(fileUri)); 64 | } catch (FileNotFoundException e) { 65 | Log.d(WiFiDirectActivity.TAG, e.toString()); 66 | } 67 | DeviceDetailFragment.copyFile(is, stream); 68 | Log.d(WiFiDirectActivity.TAG, "Client: Data written"); 69 | } catch (IOException e) { 70 | Log.e(WiFiDirectActivity.TAG, e.getMessage()); 71 | } finally { 72 | if (socket != null) { 73 | if (socket.isConnected()) { 74 | try { 75 | socket.close(); 76 | } catch (IOException e) { 77 | // Give up 78 | e.printStackTrace(); 79 | } 80 | } 81 | } 82 | } 83 | 84 | } 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /res/layout/device_detail.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 14 | 19 |