Pigeon flyPigeon = Pigeon.newBuilder(MyTestActivity.this).setAuthority("com.aimu.iflashcamera").build();
// 创建嵌套的JSON对象
HashMap<String, Object> params = new HashMap<>();
params.put("JobRunning", isCurrentJobRunning);
params.put("updateDistanceString", eyeXYZValText);
params.put("updateString", updateString);
String json = new Gson().toJson(params);
Log.e(TAG, "sendCommand:收到了吗3 ");
// flyPigeon.route("/response/result").withBundle("Result", bundleSend).fly();
flyPigeon.route("/response/result").withString("responseResult", json).fly(); 抽取封装成方法
要将这段代码抽取并封装成方法,你可以创建一个辅助类或方法,专门用于发送命令。以下是如何实现的示例:
### 1. 创建一个辅助类 `CommandSender`
```java
import android.content.Context;
import com.github.pwittchen.pigeon.Pigeon;
import com.github.pwittchen.pigeon.library.PigeonBuilder;
import com.google.gson.Gson;
import java.util.HashMap;
public class CommandSender {
private static final String AUTHORITY = "com.aimu.iflashcamera";
private static final String ROUTE = "/response/result";
private Pigeon flyPigeon;
private Gson gson = new Gson();
public CommandSender(Context context) {
flyPigeon = Pigeon.newBuilder(context).setAuthority(AUTHORITY).build();
}
public void sendCommand(boolean isCurrentJobRunning, String eyeXYZValText, String updateString) {
HashMap<String, Object> params = new HashMap<>();
params.put("JobRunning", isCurrentJobRunning);
params.put("updateDistanceString", eyeXYZValText);
params.put("updateString", updateString);
String json = gson.toJson(params);
Log.e(TAG, "sendCommand:收到了吗3 ");
flyPigeon.route(ROUTE).withString("responseResult", json).fly();
}
}
```
### 2. 在你的 `Activity` 中使用 `CommandSender`
```java
public class MyTestActivity extends AppCompatActivity {
private CommandSender commandSender;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_test);
commandSender = new CommandSender(this);
}
public void someMethodThatSendsCommand() {
boolean isCurrentJobRunning = true; // 你的逻辑来决定这个值
String eyeXYZValText = "example text"; // 你的逻辑来决定这个值
String updateString = "update text"; // 你的逻辑来决定这个值
commandSender.sendCommand(isCurrentJobRunning, eyeXYZValText, updateString);
}
}
```
### 说明:
1. **CommandSender 类**:这个类负责创建 `Pigeon` 实例,并提供发送命令的方法。
2. **sendCommand 方法**:这个方法接受所需的参数,创建一个 JSON 字符串,并使用 `Pigeon` 发送命令。
3. **在 Activity 中使用**:在你的 `Activity` 中,创建一个 `CommandSender` 的实例,并调用 `sendCommand` 方法来发送命令。
确保你已经添加了 Pigeon 库和 Gson 库的依赖项到你的 `build.gradle` 文件中。
**Pigeon 库依赖**(如果使用 Gradle):
```gradle
dependencies {
implementation 'com.github.pwittchen:pigeon:1.0.0'
}
```
**Gson 库依赖**(如果使用 Gradle):
```gradle
dependencies {
implementation 'com.google.code.gson:gson:2.8.6'
}
```
这样,你就可以将发送命令的逻辑封装在一个单独的类中,使代码更加模块化和可重用。