1

我最近正在开发一个项目,该项目需要从我的 android 移动应用程序向我的树莓派 3 上的 android 设备发送命令。如何通过 WiFi 连接实现这一点?

我只需要向设备发送一个字符串。

4

4 回答 4

2

使用 Android Things,您可以使用Nearby Messages API,它使您能够在两个 Android 设备的应用程序中进行通信并在它们之间传输消息。这是一个代码片段:

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ...
  mMessageListener = new MessageListener() {
    @Override
    public void onFound(Message message) {
        Log.d(TAG, "Found message: " + new String(message.getContent()));
    }

    @Override
    public void onLost(Message message) {
        Log.d(TAG, "Lost sight of message: " + new String(message.getContent()));
    }
  }

  mMessage = new Message("Hello World".getBytes());
}

@Override
public void onStart() {
  super.onStart();
  ...
  Nearby.getMessagesClient(this).publish(mMessage);
  Nearby.getMessagesClient(this).subscribe(mMessageListener);
}

@Override
public void onStop() {
  Nearby.getMessagesClient(this).unpublish(mMessage);
  Nearby.getMessagesClient(this).unsubscribe(mMessageListener);
  ...
  super.onStop();
}
于 2018-08-01T17:46:08.247 回答
2

如果您的其中一台设备未连接到互联网,您可以:

选项 1: 使用Google Nearby Connections API,API 选择最佳的通信方式(例如:蓝牙、Wifi...)。

https://github.com/googlesamples/android-nearby/tree/master/connections

选项 2: 使用Socket进行通信,但您的设备需要在同一网络上。如果它们没有连接到同一个网络,您可以使用WIFI P2P连接它们。

于 2018-08-03T09:37:26.957 回答
1

您可以在 Android 事物上使用 nanoHttpd 以及其他库,例如 Android 设备上的改造或 volley。

查看这个通过 Http API 控制汽车的示例: https ://github.com/plattysoft/IotCar

于 2018-08-01T21:21:46.697 回答
1

如果您使用像 Raspbian 这样的系统,您可以将您的 Raspberry 转换为服务器。然后,您将有不同的方式来发送您的命令:

选项 1:在您的树莓派(PHP、NodeJS、JEE、...)上设置一个 Http 服务器并通过 HTTP 请求发送命令。

选项 2:在您的树莓派(Socket.io,原始套接字,...)上设置套接字服务器并通过套接字客户端发送命令

选项 3在您的 raspberry 上设置 MQTT 服务器并通过 MQTT 客户端发送命令(最后一个选项是谈论物联网时要走的路)。请注意,接收命令的程序应该实现 MQTT 客户端,因为 MQTT 是基于 pub/sub 模式的。

于 2018-08-01T06:51:09.287 回答