从应用启动表盘配置 activity
Start watch face configuration activity from app
我已经为表盘构建了一个配置 activity。 Android wear 显示并启动配置 activity fine.
是否可以从配套应用启动配置 activity?
我创建了一个 activity,但无法通过 EXTRA_PEER_ID,Android Wear activity 在开始配置时似乎正在通过 activity.
我是在 How to detect if android device is paired with android wear watch 的帮助下完成的
EXTRA_PEER_ID就是连接的穿戴设备的nodeId
,可以通过下面的代码获取。
然后您可以使用 Intent.putExtra(WatchFaceCompanion.EXTRA_PEER_ID, nodeId);
并通过意图传递 id 并开始配置 activity。
代码:
private GoogleApiClient client;
private static final long CONNECTION_TIME_OUT_MS = 1000;
public void checkIfWearableConnected() {
retrieveDeviceNode(new Callback() {
@Override
public void success(String nodeId) {
Toast.makeText(LaunchActivity.this, "There was at least one wearable found", Toast.LENGTH_SHORT).show();
}
@Override
public void failed(String message) {
Toast.makeText(LaunchActivity.this, "There are no wearables found", Toast.LENGTH_SHORT).show();
}
});
}
private GoogleApiClient getGoogleApiClient(Context context) {
if (client == null)
client = new GoogleApiClient.Builder(context)
.addApi(Wearable.API)
.build();
return client;
}
private interface Callback {
void success(final String nodeId);
void failed(final String message);
}
private void retrieveDeviceNode(final Callback callback) {
final GoogleApiClient client = getGoogleApiClient(this);
new Thread(new Runnable() {
@Override
public void run() {
client.blockingConnect(CONNECTION_TIME_OUT_MS, TimeUnit.MILLISECONDS);
NodeApi.GetConnectedNodesResult result =
Wearable.NodeApi.getConnectedNodes(client).await();
List<Node> nodes = result.getNodes();
if (nodes.size() > 0) {
String nodeId = nodes.get(0).getId();
callback.success(nodeId);
} else {
callback.failed("no wearables found");
}
client.disconnect();
}
}).start();
}
我已经为表盘构建了一个配置 activity。 Android wear 显示并启动配置 activity fine.
是否可以从配套应用启动配置 activity?
我创建了一个 activity,但无法通过 EXTRA_PEER_ID,Android Wear activity 在开始配置时似乎正在通过 activity.
我是在 How to detect if android device is paired with android wear watch 的帮助下完成的
EXTRA_PEER_ID就是连接的穿戴设备的nodeId
,可以通过下面的代码获取。
然后您可以使用 Intent.putExtra(WatchFaceCompanion.EXTRA_PEER_ID, nodeId);
并通过意图传递 id 并开始配置 activity。
代码:
private GoogleApiClient client;
private static final long CONNECTION_TIME_OUT_MS = 1000;
public void checkIfWearableConnected() {
retrieveDeviceNode(new Callback() {
@Override
public void success(String nodeId) {
Toast.makeText(LaunchActivity.this, "There was at least one wearable found", Toast.LENGTH_SHORT).show();
}
@Override
public void failed(String message) {
Toast.makeText(LaunchActivity.this, "There are no wearables found", Toast.LENGTH_SHORT).show();
}
});
}
private GoogleApiClient getGoogleApiClient(Context context) {
if (client == null)
client = new GoogleApiClient.Builder(context)
.addApi(Wearable.API)
.build();
return client;
}
private interface Callback {
void success(final String nodeId);
void failed(final String message);
}
private void retrieveDeviceNode(final Callback callback) {
final GoogleApiClient client = getGoogleApiClient(this);
new Thread(new Runnable() {
@Override
public void run() {
client.blockingConnect(CONNECTION_TIME_OUT_MS, TimeUnit.MILLISECONDS);
NodeApi.GetConnectedNodesResult result =
Wearable.NodeApi.getConnectedNodes(client).await();
List<Node> nodes = result.getNodes();
if (nodes.size() > 0) {
String nodeId = nodes.get(0).getId();
callback.success(nodeId);
} else {
callback.failed("no wearables found");
}
client.disconnect();
}
}).start();
}