简介

除在单一设备上进行交互外,ProtoPie还支持在多个设备间进行相互通讯以便捷地实现原型上的交互,如进行聊天或转账。

准备工作

发送反应和接收触发使得设备间的交互成为可能。当一个具有接收触发的设备接收到另一设备通过发送反应发来的信息时,这一设备的反应动作就会被触发。 接收设备上所收到的信息应与发送设备上发送的信息一致。

发送反应

频道
将ProtoPie Studio设为允许设备间交互的渠道。安卓Broadcasting允许安卓设备上的原型与其它外部硬件通讯
信息
信息指的是被传送的字符串。当接收设备上的接收触发内所设的信息与发送反应中携带的信息一致时,设备间的交互就会发生
赋值给变量
允许在传送信息的同时传送一个值,在接收信息时该值就可以被用于给某一变量赋值

接收触发

频道
将ProtoPie Studio设为允许设备间交互的渠道。安卓Broadcasting允许安卓设备上的原型与其它外部硬件通讯
信息
信息指的是被传送的字符串。当接收设备上的接收触发器内所设的信息与发送事件反应中携带的信息一致时,设备间的交互就会发生
赋值给变量
允许在传送信息的同时传送一个值,在接收信息时该值就可以被用于给某一变量赋值

示例

连接设备

在Windows或macOS上运行的ProtoPie Studio如同集线器(hub) 一样将多种设备相互连接起来。您可以使用ProtoPie Player或ProtoPie Studio来与智能设备进行连接,这些设备要和装有ProtoPie Player的移动设备或运行ProtoPie Studio的计算机全都处于同一网络中。此外您也可以使用USB来将智能设备连接到计算机上。点击此处 了解将智能设备连接到ProtoPie Studio的更多知识。

与其它安卓App进行通信

当选择“发送”与“接收”的渠道属性为 Android Broadcasts时,可以通过安卓上安装的ProtoPie Player,让正在执行的原型与安卓设备上的其他APP通讯。

如需从其他App向ProtoPie Player发送消息,可通过创建以io.protopie.action.ONE_TIME_TRIGGER为action的Intent后以Broadcast形式发出。

val intent = Intent("io.protopie.action.ONE_TIME_TRIGGER")
intent.putExtra("messageId", "YOUR_MESSAGE_ID")
intent.putExtra("value", "123") // Optional
context.sendBroadcast(intent)

如需从ProtoPie Player向App发送信息,可以创建BroadcastReceiver来接收带有action值io.protopie.action.ONE_TIME_RESPONSE的Broadcast。

val receiver = object : BroadcastReceiver() {
  override fun onReceive(context: Context, intent: Intent) {
    val messageId = intent.getStringExtra("messageId")
    val value = intent.getStringExtra("value")
    println("Message from ProtoPie. messageId=$messageId value=$value")
  }
}

val filter = IntentFilter("io.protopie.action.ONE_TIME_RESPONSE")
context.registerReceiver(receiver, filter)

FAQ

TOP