package com.yw.sdkdemo.imu; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import com.yw.imu.YwImuManager; import com.yw.sdkdemo.R; /** * Created by xushuang on 2024/5/10 * E-mail: mitgic92@gmail.com * Description: */ public class ImuActivity extends AppCompatActivity { private static final String TAG = ImuActivity.class.getSimpleName(); private Button bt_register; private Button bt_unregister; private TextView tv_data; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_imu); initView(); initListener(); } private void initView() { bt_register = findViewById(R.id.bt_register); bt_unregister = findViewById(R.id.bt_unregister); tv_data = findViewById(R.id.tv_data); } // 使用 StringBuilder 替代 String.format StringBuilder logMessage = new StringBuilder(); private YwImuManager.SensorDataListener listener = new YwImuManager.SensorDataListener() { @Override public void onSensorData(float v, float v1, float v2, float v3, float v4, float v5) { logMessage.delete(0, logMessage.length()); logMessage.append("accX=").append(v) .append(" accY=").append(v1) .append(" accZ=").append(v2) .append(" gyroX=").append(v3) .append(" gyroY=").append(v4) .append(" gyroZ=").append(v5); runOnUiThread(new Runnable() { @Override public void run() { tv_data.setText(logMessage.toString()); } }); } }; private void initListener() { bt_register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { YwImuManager.getInstance().register(listener); } }); bt_unregister.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { YwImuManager.getInstance().unregister(listener); tv_data.setText(""); } }); } @Override protected void onPause() { super.onPause(); YwImuManager.getInstance().unregister(listener); tv_data.setText(""); } }