Đồng hồ Pebble có Intent được gắn trên toàn cầu khi Pebble được kết nối/ngắt kết nối. Điều này cho phép các ứng dụng điện thoại biết liệu đồng hồ có được kết nối hay không. Tôi đã tìm kiếm nhưng tôi không thể định vị thông tin về một tính năng tương tự cho Android Wear. Làm cách nào để biết thiết bị đeo được kết nối với điện thoại? Có thể nhận một sự kiện như với Pebble không? Cảm ơnPhát hiện khi kết nối có thể đeo/ngắt kết nối với/từ điện thoại Android
Trả lời
Bạn có thể dễ dàng thực hiện việc này bằng cách mở rộng phương thức WearableListenerService và ghi đè lên phương thứcConnectedNodes().
Wearable Side
public class DisconnectListenerService extends WearableListenerService implements GoogleApiClient.ConnectionCallbacks {
/* the capability that the phone app would provide */
private static final String CONNECTION_STATUS_CAPABILITY_NAME = "is_connection_lost";
private GoogleApiClient mGoogleApiClient;
@Override
public void onCreate() {
super.onCreate();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Wearable.API)
.addConnectionCallbacks(this)
.build();
}
@Override
public void onConnectedNodes(List<Node> connectedNodes) {
if (mGoogleApiClient.isConnected()) {
updateStatus();
} else if (!mGoogleApiClient.isConnecting()) {
mGoogleApiClient.connect();
}
}
private void updateStatus() {
Wearable.CapabilityApi.getCapability(
mGoogleApiClient, CONNECTION_STATUS_CAPABILITY_NAME,
CapabilityApi.FILTER_REACHABLE).setResultCallback(
new ResultCallback<CapabilityApi.GetCapabilityResult>() {
@Override
public void onResult(CapabilityApi.GetCapabilityResult result) {
if (result.getStatus().isSuccess()) {
updateConnectionCapability(result.getCapability());
} else {
Log.e(TAG, "Failed to get capabilities, " + "status: " + result.getStatus().getStatusMessage());
}
}
});
}
private void updateConnectionCapability(CapabilityInfo capabilityInfo) {
Set<Node> connectedNodes = capabilityInfo.getNodes();
if (connectedNodes.isEmpty()) {
// The connection is lost !
} else {
for (Node node : connectedNodes) {
if (node.isNearby()) {
// The connection is OK !
}
}
}
}
@Override
public void onConnected(Bundle bundle) {
updateStatus();
}
@Override
public void onConnectionSuspended(int cause) {
}
@Override
public void onDestroy() {
if (mGoogleApiClient.isConnected() || mGoogleApiClient.isConnecting()) {
mGoogleApiClient.disconnect();
}
super.onDestroy();
}
}
Side Điện thoại
tạo một file xml trong giá trị/thư mục có tên wear.xml
<resources>
<string-array name="android_wear_capabilities">
<item>is_connection_lost</item>
</string-array>
</resources>
Để biết thêm, kiểm tra các giải pháp của tôi trong này Stack Overflow Question
Các bạn đã thử NodeApi, bạn có thể sử dụng getConnectedNodes
Gets một danh sách các nút mà thiết bị này hiện đang được kết nối.
hoặc addListener(GoogleApiClient client, NodeApi.NodeListener listener)
mà
Đăng ký một người biết lắng nghe để nhận được tất cả các sự kiện nút.
Sau đó, bạn có thể sử dụng callbacks từ NodeApi.NodeListener
onPeerConnected(Node peer) and onPeerDisconnected(Node peer)
Nhưng có thể có nhiều hơn một nút được kết nối ... – powder366
Như Akmal nói rằng bạn có thể nhận được các thiết bị được kết nối với điện thoại, Nhưng để biết liệu wearable hiện đang kết nối với thiết bị cầm tay
List<Node> connectedNodes =
Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await().getNodes();
Danh sách chứa dữ liệu như sau:
Node{Moto 360 6BBF, id=3b6d19bf, hops=1, isNearby=true}
- 1. Kết nối điện thoại Android với ADB
- 2. Android: Kết nối hai điện thoại không dây?
- 3. Kết nối hai điện thoại Android với cáp USB
- 4. điện Auto trên Android khi bộ sạc được kết nối
- 5. Android WIFI Cách phát hiện khi kết nối WIFI cụ thể có sẵn
- 6. Phát hiện vòng kết nối hough android
- 7. Có thể kết nối điện thoại Android với máy in qua bluetooth không?
- 8. Phát hiện chia sẻ kết nối qua USB trên android
- 9. Kết nối không phải wifi với kiểm tra phát hiện điện thoại
- 10. Cách dễ nhất để phát hiện xem thiết bị Android Wear có được kết nối với điện thoại không?
- 11. AFNetworking phát hiện khi kết nối wifi không có kết nối internet hoạt động
- 12. Kết nối HTTPS trên Wi-fi đã bật Android Wear mà không cần kết nối qua điện thoại
- 13. Phát hiện khi màn hình mới được kết nối
- 14. Android 2.1 Phát hiện âm thanh Bluetooth kết nối/ngắt kết nối
- 15. Android Bluetooth - Không thể kết nối ra
- 16. NIO - Phát hiện kết nối đã đóng
- 17. Android phát hiện ngắt kết nối Bluetooth ngay lập tức
- 18. kết nối với thiết bị bluetooth không thể phát hiện
- 19. Phát hiện kết nối mạng bị hạn chế trong Android?
- 20. android: Làm cách nào để kết nối điện thoại Android với máy chiếu qua USB/HDMI?
- 21. C# phát hiện tcp ngắt kết nối
- 22. Cách phát hiện khi nào kết nối WiFi (lại)?
- 23. Phát hiện khi CodeIgniter không kết nối được với Db
- 24. "lỗi ssl đã xảy ra và không thể kết nối an toàn với máy chủ" kết nối với Máy chủ phát triển nội bộ trên điện thoại chỉ
- 25. Clojure (aleph) phát hiện khi máy chủ ngắt kết nối
- 26. gỡ lỗi android: kết nối với sqlite db trên điện thoại
- 27. Phát hiện xem thiết bị BLE có thể kết nối được trên Android
- 28. Có thể viết bộ thu phát sóng Android phát hiện khi điện thoại thức dậy không?
- 29. Kết nối Bluetooth giữa Android và điện thoại khác trên hồ sơ Rảnh tay
- 30. Hồ bơi kết nối JDBC Tomcat (phát hành kết nối)
Đây không phải là câu trả lời cho câu hỏi được hỏi ... nên được gắn cờ –