Important to Note
CommCare 2.40 and contained a bug whereby crashes at certain points during Wi-Fi Direct transfer could cause the loss of forms. If you are using this feature please be sure that you are running the most recent version of CommCare.
Usage of this feature necessarily involves multiple users and devices, complicating the ownership chain and form submission. Please use this feature only in situations where the offline workflow is explicitly needed as outlined below
Intended Workflow
This feature was designed for projects where devices may need to remain in areas with no connectivity for long periods of time.
Workers would use the devices to gather forms as usual, but instead of syncing forms directly to the server the workers would transfer forms to a host tablet.
This host would then be returned to an area with Internet connectivity and sync all the forms to the CommCare HQ server.
Once uploaded to the server, the forms will not appear or behave any differently than if they had been uploaded through the regular process.
These forms can be operated on by different devices.
Technical Requirements
Using Wi-Fi direct requires a phone or tablet running Android 4.0 later.
You also need to make sure the specific device supports Wi-Fi Direct.
Instructions
Ensure than Wi-Fi and Wi-Fi Direct is enabled on your device (note that these are separate functionalities) Refer to your device's guide on how to do this.
Note - even if you don't have a Wi-Fi network, Wi-Fi still needs to be enabled on most devices to use this functionality
Note - these instructions are written for two devices. However, many clients can connect to the host without syncing to the server.
We've also observed that the Wi-Fi Direct technology can sometimes get into a bad connection state where the phones both think the other is in a different state than it is. The easiest way to fix this is to toggle your device's Wi-Fi connection on and off.
If you encounter an error in this process, please connect the device to the internet and submit your device's logs to the server by going to the CommCare home screen, pressing the settings button in the top right of the screen twice, selecting the "Settings" options, then pressing the settings button in the top right again, and selecting the "Force Log Submission" option.
Client- Transfer Forms
The first device has collected forms as usual
Navigate to the home screen of CommCare ODK and select the "Settings" button
Select "Advanced" and choose "Wi-Fi Direct" from the drop down menu
Select "Transfer" at the dialog screen
Host - Receive Forms
Navigate to the home screen of CommCare ODK and select the "Settings" button (It doesn't matter with which user you login as all forms will show up on HQ under the original client user)
Select "Advanced" and choose "Wi-Fi Direct" from the drop down menu
Select "Receive Forms" at the dialog screen
Wait until the device's status reads "Connected" (requires Wi-fi Direct to be enabled)
Client
When both phones have completed these steps, the client device should press the "Discover Peers" button
This will populate the list of other devices you can transfer forms to
From the list of devices, select the host device you want to connect to. You can determine the address of your phone next to the "My Device" icon at the top of host phone's screen
Host
The host device now needs to press "Accept" to begin the connection
Wait a moment until both devices read "Connected" on the peer list
When this is done, the sending device can press the "Transfer Forms" button to begin form transfer
After this process, the host device will acknowledge the transfer.
Host - Upload Forms
When the host has connectivity, again select the "settings" button at the top right of the home screen and select the "Wi-fi Direct" option
Select "Send" from the dialog screen
Select "Submit Files"
If you encounter an error in this process, please connect the device to the internet and submit your device's logs to the server by going to the CommCare home screen, pressing the settings button in the top right of the screen twice, selecting the "Settings" options, then pressing the settings button in the top right again, and selecting the "Force Log Submission" option.