Fri*_*amp 5 android motion sensors
在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");
}
}
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助。
小智 0
我遇到了同样的问题,我发现
mSensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);
Run Code Online (Sandbox Code Playgroud)
返回空值。因此,设备(或虚拟设备)中可能没有显着运动传感器。在示例中的以下代码中
@Override
protected void onResume() {
super.onResume();
if (mSigMotion != null && mSensorManager.requestTriggerSensor(mListener, mSigMotion))
mTextView.append(getString(R.string.sig_motion_enabled) + "\n");
}
Run Code Online (Sandbox Code Playgroud)
mSensorManager.requestTriggerSensor(mListener, mSigMotion))永远不会被执行。
| 归档时间: |
|
| 查看次数: |
918 次 |
| 最近记录: |