2015-06-07 3 views
9

Последнее обновление Android Wear поставляется с поддержкой ChannelApi, которое может использоваться для отправки файлов на/из портативных или портативных. Проблема в том, что я не могу найти один образец того, как использовать эту функциональность. Образцы Android не включают эту функцию. Поэтому, если кто-то знает, как использовать sendFile/receiveFile и может дать быстрый пример здесь, это будет оценено.Примеры использования Android Wear ChannelApi?

+0

Любые новости по этому вопросу? Я на самом деле ищу то же самое – krakig

ответ

7

Посмотрите на это answer, чтобы узнать, как использовать API канала для создания канала между устройствами.

После создания googleClient и retrive в NodeId устройства вы хотите отправить файл, в основном вы можете использовать следующий код на носимых стороне:

//opening channel 
ChannelApi.OpenChannelResult result = Wearable.ChannelApi.openChannel(googleClient, nodeId, "/mypath").await(); 
channel = result.getChannel(); 

//sending file 
channel.sendFile(googleClient, Uri.fromFile(file)); 

Затем на портативном устройстве:

//receiving the file 
@Override 
public void onChannelOpened(Channel channel) { 
    if (channel.getPath().equals("/mypath")) { 

     file = new File("/sdcard/file.txt"); 

     try { 
      file.createNewFile(); 
     } catch (IOException e) { 
      //handle error 
     } 

     channel.receiveFile(mGoogleApiClient, Uri.fromFile(file), false); 
    } 
} 

//when file is ready 
@Override 
public void onInputClosed(Channel channel, int i, int i1) { 
    MainActivity.this.runOnUiThread(new Runnable() { 
     public void run() { 
      Toast.makeText(MainActivity.this, "File received!", Toast.LENGTH_SHORT).show(); 
     } 
    }); 
} 

Если вам нужно больше информации об этом, пожалуйста, посетите reference site from Google

+0

Благодарим вас за пример. Я установил, что мой телефон отправляет файл .mp3 на мою носимую сторону, но я ничего не получаю (метод onChannelOpened не запускается), любая идея о том, что я могу делать неправильно? http://pastebin.com/VjfhwW51 – krakig

+0

Как вы извлекаете идентификатор портативного узла? –

+1

Есть ли способ увидеть ход загрузки при получении файла? – krakig

2

Это просто добавить к ответу: также проверить ваш WearableListenerService в androidmanifest. Фильтр намерений должен содержать действие com.google.android.gms.wearable.CHANNEL_EVENT.