java - 无法使用registerlistener来使用Step_counter - Android

标签 java android android-studio android-sensors

我想通过手机的传感器来使用 STEP_COUNTER。 这是我的代码:

public class ContarPassos extends Fragment {

private SensorManager sensorManager;
private TextView count;
boolean running;

Toolbar toolbar;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.contar_passos,null);

    toolbar = view.findViewById(R.id.toolbar_passos);
    ((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);

    count = (TextView) view.findViewById(R.id.passos);
    sensorManager = (SensorManager)getActivity().getSystemService(Context.SENSOR_SERVICE);

    return view;
}

@Override
public void onResume() {
    super.onResume();
    running = true;
    Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
    if(countSensor != null) {
        sensorManager.registerListener(getActivity(), countSensor, SensorManager.SENSOR_DELAY_UI);
    } else {
        Toast.makeText(getActivity(), "Count sensor not available!", Toast.LENGTH_LONG).show();
    }
}

@Override
public void onPause() {
    super.onPause();
    running = false;
}


public void onSensorChanged(SensorEvent event) {
    if(running) {
        count.setText(String.valueOf(event.values[0]));
    }
}

public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

我的问题在这一行:

sensorManager.registerListener(getActivity(), countSensor, SensorManager.SENSOR_DELAY_UI);

我正在使用 fragment ,我认为当我们使用 fragment 时,我们使用 getActivity 而不是“this” 我已经尝试转换“getActivity”但不起作用。

最佳答案

我认为你需要在类声明中实现 SensorEventListener

public class ContarPassos extends Fragment implements SensorEventListener {
...
}

然后在注册回调时将第一个参数设置为“this”而不是 getActivity()

(sensorManager.registerListener(this, countSensor, SensorManager.SENSOR_DELAY_UI);

尝试一下,这是我在 StackOverflow 上的第一篇文章,我是一名菜鸟程序员,但希望我能提供帮助!

关于java - 无法使用registerlistener来使用Step_counter - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56961727/

相关文章:

java - 在Android中,如何将数据从类传递到相应的布局/fragment 文件?

java - 在 Eclipse 中突出显示文件

android-studio - 如何使用 TFS 插件通过 Android Studio 提交忽略文件列表

android - 删除 JCenter() 后使用 Android YouTube 视频播放器 'com.pierfrancescosoffritti.androidyoutubeplayer:core:10.0.5' 时出现错误

java - 更新安卓速率栏

java - Hibernate 延迟加载与显式查询

java - objectMapper 将印地语文本转换为特殊字符 "???"

java - 从 JAX-RS Rest 服务以 JSON 形式返回异常

android - 如何在android中获取准确的当前移动时间?

android - RoboVM 没有看到我安装了 xCode?