gpt4 book ai didi

android - 如何从手机启动android wear Activity

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:53 26 4
gpt4 key购买 nike

我一直在做一个项目,我需要手机上的一个按钮来启动 watch 上的 Activity 。我一直在浏览 sdk 中的数据层示例,但无法使其正常工作。我设置了一个可穿戴监听器服务类,但它没有接收到任何消息。该服务已添加到 list 中,但仍无法正常工作。我也有其他服务,我想我可能有太多服务。

在 Wear watch 上,是否必须运行一项 Activity 才能启动另一项 Activity ?我希望 watch 在收到消息之前不运行,这可能吗?

另外,wear 模块的编辑配置设置应该是什么? (例如,不启动 Activity 、启动默认或从 Activity 启动)我只想让可穿戴设备在收到消息时启动。

如果有人能指出正确的方向,我将不胜感激。

谢谢。

最佳答案

移动

访问可穿戴数据层

MainActivity.java

public class MainActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener{
private GoogleApiClient mGoogleApiClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Wearable.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mGoogleApiClient.connect();
}

@Override
public void onConnected(Bundle bundle) {
Log.d("GoogleApi", "onConnected: " + bundle);
}

@Override
public void onConnectionSuspended(int i) {
Log.d("GoogleApi", "onConnectionSuspended: " + i);
}

@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
Log.d("GoogleApi", "onConnectionFailed: " + connectionResult);
}

获取连接节点

Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() {
@Override
public void onResult(NodeApi.GetConnectedNodesResult getConnectedNodesResult) {
for (Node node : getConnectedNodesResult.getNodes()) {
sendMessage(node.getId());
}
}
});

发送消息

public static final String START_ACTIVITY_PATH = "/start/MainActivity";


private void sendMessage(String node) {
Wearable.MessageApi.sendMessage(mGoogleApiClient , node , START_ACTIVITY_PATH , new byte[0]).setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
@Override
public void onResult(MessageApi.SendMessageResult sendMessageResult) {
if (!sendMessageResult.getStatus().isSuccess()) {
Log.e("GoogleApi", "Failed to send message with status code: "
+ sendMessageResult.getStatus().getStatusCode());
}
}
});
}

穿着

实现一个消息监听器

WearDataLayerListenerService.java

public class WearDataLayerListenerService extends WearableListenerService {
public static final String START_ACTIVITY_PATH = "/start/MainActivity";
@Override
public void onMessageReceived(MessageEvent messageEvent) {
super.onMessageReceived(messageEvent);
if(messageEvent.getPath().equals(START_ACTIVITY_PATH)){
Intent intent = new Intent(this , MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}}

将监听器服务添加到 list

    <service
android:name=".WearDataLayerListenerService">
<intent-filter>
<action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
</intent-filter>
</service>

关于android - 如何从手机启动android wear Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30050299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com