2015-06-07 27 views
9

Bản cập nhật Android Wear mới nhất đi kèm với hỗ trợ cho ChannelApi có thể được sử dụng để gửi tệp đến/từ thiết bị có thể đeo hoặc cầm tay. Vấn đề là tôi không thể tìm thấy một mẫu đơn nào về cách sử dụng chức năng này. Các mẫu Android không bao gồm tính năng này. Vì vậy, nếu có ai biết cách sử dụng sendFile/receiveFile và có thể đưa ra một ví dụ nhanh ở đây, nó sẽ được đánh giá cao.Ví dụ về Android Wear ChannelApi?

+0

Mọi tin tức về điều này? Tôi đang thực sự tìm kiếm cùng một – krakig

Trả lời

7

Hãy xem qua số answer này để biết cách sử dụng API kênh để tạo kênh giữa các thiết bị.

Sau khi bạn tạo googleClient và retrive nodeID của thiết bị bạn muốn gửi hồ sơ cho, về cơ bản bạn có thể sử dụng đoạn mã sau vào phía wearable:

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

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

Sau đó, trên thiết bị cầm tay:

//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(); 
     } 
    }); 
} 

Nếu bạn cần biết thêm thông tin về vấn đề này, vui lòng truy cập reference site from Google

+0

Cảm ơn bạn đã prodiving một ví dụ. Tôi đã đặt điện thoại của mình gửi tệp .mp3 sang mặt mặc, nhưng tôi không nhận được bất kỳ thứ gì (phương thức onChannelOpened không được kích hoạt), bất kỳ ý tưởng nào về việc tôi có thể làm sai? http://pastebin.com/VjfhwW51 – krakig

+0

Bạn truy xuất id nút cầm tay như thế nào? –

+1

Có cách nào để xem tiến trình tải xuống khi bạn nhận được tệp không? – krakig

2

Đây chỉ là một bổ sung vào câu trả lời: cũng kiểm tra WearableListenerService của bạn trong androidmanifest. Bộ lọc ý định của nó nên chứa hành vi com.google.android.gms.wearable.CHANNEL_EVENT.