Pigeon flyPigeon = Pigeon.newBuilder(MyTestActivity.this).setAuthority(“com.aimu.iflashcamera“).buil

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'
}
```

这样,你就可以将发送命令的逻辑封装在一个单独的类中,使代码更加模块化和可重用。
 

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值