需要多少运动才能触发“重要运动”?

5

android.googlesource.com上测试了“显著运动”示例以了解有关此触发器传感器的更多信息。不幸的是,该传感器未触发。 我做错了什么?

代码片段

class TriggerListener extends TriggerEventListener {
    private Context mContext;
    private TextView mTextView;

    TriggerListener(Context context, TextView textView) {
        mContext = context;
        mTextView = textView;
    }

    @Override
    public void onTrigger(TriggerEvent event) {
        if (event.values[0] == 1) {
            mTextView.append(mContext.getString(R.string.sig_motion) + "\n");
            mTextView.append(mContext.getString(R.string.sig_motion_auto_disabled) + "\n");
        }
    }
}

public class MainActivity extends AppCompatActivity {
    private SensorManager mSensorManager;
    private Sensor mSigMotion;
    private TriggerListener mListener;
    private TextView mTextView;

    @Override
    protected void onPause() {
        super.onPause();
        if (mSigMotion != null) mSensorManager.cancelTriggerSensor(mListener, mSigMotion);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
        mSigMotion = mSensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);
        mTextView = (TextView)findViewById(R.id.text);
        mListener = new TriggerListener(this, mTextView);
        if (mSigMotion == null) {
            mTextView.append(getString(R.string.no_sig_motion) + "\n");
        }
    }

感谢您的帮助。
1个回答

0

我也遇到了同样的问题,后来我找到了解决方法。

mSensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);

返回了空值。可能设备(或虚拟设备)中没有重要动作传感器。以下是示例代码:

@Override
protected void onResume() {
    super.onResume();
    if (mSigMotion != null && mSensorManager.requestTriggerSensor(mListener, mSigMotion))
        mTextView.append(getString(R.string.sig_motion_enabled) + "\n");
 }

mSensorManager.requestTriggerSensor(mListener, mSigMotion))从未被执行。


@AI117 感谢您的回复。在上面的代码中,来自android.googlesource.com,即使没有重要动作传感器,mTextView 中也应该始终有注释。但是当我运行该代码时,我没有看到任何注释。 - Frits Molenkamp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接