从磨损模块 Android 在手持设备 class 中执行方法

Executeing a method in Handheld class from Wear Module Android

假设我在 MainActivity 中有一个名为 Emergencyalert() 的方法,它的作用是向某些选定的联系人发送一些警报消息。所以我想要一个 wear 应用程序,当用户单击 Android Wear 中的紧急按钮时,它只执行手持设备中的 Emergencyalert() 方法。 我的项目中有两个不同的模块,称为 mobile 和 wear。我使用 AndroidStudio。提前谢谢。

首先将您的 Emergencyalert() 方法移动到服务中(IntentService 将是完美的选择:只需将您的 Emergencyalert() 代码 运行 放在服务的 onHandleIntent()).这是必要的,因为只有当 activity 打开并在屏幕上可见时才能调用 activity 中的方法(通过 Wear 应用程序激活时不会出现这种情况)。

您可以测试以确保您的 IntentService 正常工作,方法是将 MainActivity 中对 Emergencyalert() 的调用替换为对

的调用
startService(new Intent(MainActivity.this, EmergencyAlertIntentService.class));

这将启动服务并发出紧急警报。

对于 Android Wear 部分,您的 Wear 应用程序需要 send a Message to your handheld device, stating that the emergency button was pressed. You should then implement a WearableListenerService in your handheld app and override the onMessageReceived() 方法 - 在该方法中,调用与您在 MainActivity 和您的 MainActivity 中调用的相同的 startService()当您按下 Android Wear 设备上的按钮时,即使您的应用程序处于后台,紧急警报也会触发。