首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三星xcover 3 TYPE_GYROSCOPE无法正常工作

三星xcover 3 TYPE_GYROSCOPE无法正常工作
EN

Stack Overflow用户
提问于 2018-05-23 19:13:10
回答 1查看 66关注 0票数 1

当我查看xCover3中的规范时,他们写道这个模型有陀螺仪。

我试着写代码(我使用android studio)看看它是如何工作的,但它没有在这个型号或android虚拟设备上显示这个传感器。

代码语言:javascript
复制
public class Menu extends AppCompatActivity implements SensorEventListener{




boolean running = false;
SensorManager sensorManager; 
ToggleButton btn; 
TextView textView;
TextView x1;
TextView y1;
TextView z1;



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

    btn = (ToggleButton) findViewById(R.id.toggleButton);
    sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);

  btn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
      @Override
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
          if(isChecked){

              running = true;

          }


            else{

           running = false;


      }}
  });
}

@Override
protected void onResume() {
    super.onResume();
    Sensor countsensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
    if(countsensor != null){
        sensorManager.registerListener(this,countsensor,SensorManager.SENSOR_DELAY_FASTEST);
   }
    else{

       Toast.makeText(this, "Brak sensora",Toast.LENGTH_SHORT).show();
    }
}

@Override
public void onSensorChanged(SensorEvent event) {

    if(running){


        x1 =(TextView) findViewById(R.id.textViewX1);
        y1 =(TextView) findViewById(R.id.textViewY1);
        z1 =(TextView) findViewById(R.id.textViewZ1);

        x1.setText(String.valueOf(event.values[0]));
        y1.setText(String.valueOf(event.values[1]));
        z1.setText(String.valueOf(event.values[2]));



    }
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}}

在这一部分中,countsensor返回null。

代码语言:javascript
复制
     @Override
        protected void onResume() {
        super.onResume();
        Sensor countsensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
        if(countsensor != null){ 
 sensorManager.registerListener(this,countsensor,SensorManager.SENSOR_DELAY_FASEST);
       }
        else{

           Toast.makeText(this, "Brak sensora",Toast.LENGTH_SHORT).show();
        }
    }

当我将Sensor.TYPE_GYROSCOPE更改为Sensor.TYPE_ACCELEROMETER时,一切工作正常。我很困惑为什么它不能工作。

EN

回答 1

Stack Overflow用户

发布于 2018-05-23 22:12:59

根据这个网站的说法,这个设备没有陀螺仪:

https://www.gsmarena.com/samsung_galaxy_xcover_3-6990.php

您可以使用以下几行代码简单地检查设备中是否存在陀螺仪:

代码语言:javascript
复制
boolean gyro;

gyro = sensorMgr.registerListener(this,sensorMgr.getDefaultSensor(Sensor.TYPE_GYROSCOPE);

if(gyro) 
{
//code to execute if gyro is present
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50486956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档