你好!
我正在尝试编写一个 tasker 插件,它将使用特定消息将套接字发送到指定的 ip:port。
因为 在 android 和 java 中,我使用了来自 github 的工作项目:https ://github.com/nosybore/Tasker-MQTT-Publish-Plugin
我更改了变量字段并重写了处理程序本身的代码:
public void onReceive(final Context context, final Intent intent) {
mServer = intent.getStringExtra("Server");
mPort = intent.getStringExtra("Port");
mMessage = intent.getStringExtra("Payload");
mMessage += "\r\n";
try {
//Send Socket
if(mServer != "" && mPort != "" && mMessage != "") {
Socket socket = new Socket(mServer, parseInt(mPort));
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF(mMessage);
dos.flush();
dos.close();
socket.close();
Toast.makeText(context, "Socket Sended", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(context, e.toString(), Toast.LENGTH_SHORT).show();
System.exit(1);
}
}
在tasker中,插件似乎正在添加设置,但启动时没有任何反应。我试图显示 Toast - 也没有显示任何内容。Ch.y.d.n.t.? (
结果证明这是非常困难的。也许有人会需要这些信息。
一)。要使用 java.sockets,需要在 manifest 中写:
2)。Android 禁止从主线程调用网络函数。因此,我们使用构造函数创建一个新类:
我们在 onReceive 中调用它: