SensorManager only working on some devices
up vote
0
down vote
favorite
I have the following code to get the x and y angle of my device and it is working fine on my phone, but not my tablet (Samsung galaxy tab e). I was wondering if anyone had any idea as to what could be causing it to work on one device but not another.
I did also ensure that screen rotation was enabled on both. My assumption is that the tablet is lacking a sensor, and what I'm looking for most is a workaround. Any help would be much appreciated. Thanks in advance!
Source code:
double yAngle;
double xAngle;
@Override
protected void onResume() {
super.onResume();
sensorManager.unregisterListener(this);
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR),RATE);
}
@Override
public void onSensorChanged(SensorEvent event) {
float rotationMatrix;
rotationMatrix = new float[16];
SensorManager.getRotationMatrixFromVector(rotationMatrix, event.values);
determineOrientation(rotationMatrix);
lblY.setText(String.format("%.1f", yAngle));
lblX.setText(String.format("%.1f", xAngle));
}
private void determineOrientation(float rotationMatrix){
//CREATING FLOAT ARRAY OF ORIENTATION VALUES
float orientationValues = new float[3];
SensorManager.getOrientation(rotationMatrix, orientationValues);
yAngle = Math.toDegrees(orientationValues[2]);
xAngle = Math.toDegrees(orientationValues[1]);
}
java android android-studio android-sensors sensormanager
add a comment |
up vote
0
down vote
favorite
I have the following code to get the x and y angle of my device and it is working fine on my phone, but not my tablet (Samsung galaxy tab e). I was wondering if anyone had any idea as to what could be causing it to work on one device but not another.
I did also ensure that screen rotation was enabled on both. My assumption is that the tablet is lacking a sensor, and what I'm looking for most is a workaround. Any help would be much appreciated. Thanks in advance!
Source code:
double yAngle;
double xAngle;
@Override
protected void onResume() {
super.onResume();
sensorManager.unregisterListener(this);
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR),RATE);
}
@Override
public void onSensorChanged(SensorEvent event) {
float rotationMatrix;
rotationMatrix = new float[16];
SensorManager.getRotationMatrixFromVector(rotationMatrix, event.values);
determineOrientation(rotationMatrix);
lblY.setText(String.format("%.1f", yAngle));
lblX.setText(String.format("%.1f", xAngle));
}
private void determineOrientation(float rotationMatrix){
//CREATING FLOAT ARRAY OF ORIENTATION VALUES
float orientationValues = new float[3];
SensorManager.getOrientation(rotationMatrix, orientationValues);
yAngle = Math.toDegrees(orientationValues[2]);
xAngle = Math.toDegrees(orientationValues[1]);
}
java android android-studio android-sensors sensormanager
sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)
returnsnull
when the sensor is not supported by the device. You can log its value to see whether it returnsnull
in the tablet or not ?
– Umer Farooq
Nov 17 at 16:03
It does indeed return null on the tablet. Would you know if there are other sensors that can be used? Thanks
– Paul Schreckenbach
Nov 17 at 16:21
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have the following code to get the x and y angle of my device and it is working fine on my phone, but not my tablet (Samsung galaxy tab e). I was wondering if anyone had any idea as to what could be causing it to work on one device but not another.
I did also ensure that screen rotation was enabled on both. My assumption is that the tablet is lacking a sensor, and what I'm looking for most is a workaround. Any help would be much appreciated. Thanks in advance!
Source code:
double yAngle;
double xAngle;
@Override
protected void onResume() {
super.onResume();
sensorManager.unregisterListener(this);
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR),RATE);
}
@Override
public void onSensorChanged(SensorEvent event) {
float rotationMatrix;
rotationMatrix = new float[16];
SensorManager.getRotationMatrixFromVector(rotationMatrix, event.values);
determineOrientation(rotationMatrix);
lblY.setText(String.format("%.1f", yAngle));
lblX.setText(String.format("%.1f", xAngle));
}
private void determineOrientation(float rotationMatrix){
//CREATING FLOAT ARRAY OF ORIENTATION VALUES
float orientationValues = new float[3];
SensorManager.getOrientation(rotationMatrix, orientationValues);
yAngle = Math.toDegrees(orientationValues[2]);
xAngle = Math.toDegrees(orientationValues[1]);
}
java android android-studio android-sensors sensormanager
I have the following code to get the x and y angle of my device and it is working fine on my phone, but not my tablet (Samsung galaxy tab e). I was wondering if anyone had any idea as to what could be causing it to work on one device but not another.
I did also ensure that screen rotation was enabled on both. My assumption is that the tablet is lacking a sensor, and what I'm looking for most is a workaround. Any help would be much appreciated. Thanks in advance!
Source code:
double yAngle;
double xAngle;
@Override
protected void onResume() {
super.onResume();
sensorManager.unregisterListener(this);
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR),RATE);
}
@Override
public void onSensorChanged(SensorEvent event) {
float rotationMatrix;
rotationMatrix = new float[16];
SensorManager.getRotationMatrixFromVector(rotationMatrix, event.values);
determineOrientation(rotationMatrix);
lblY.setText(String.format("%.1f", yAngle));
lblX.setText(String.format("%.1f", xAngle));
}
private void determineOrientation(float rotationMatrix){
//CREATING FLOAT ARRAY OF ORIENTATION VALUES
float orientationValues = new float[3];
SensorManager.getOrientation(rotationMatrix, orientationValues);
yAngle = Math.toDegrees(orientationValues[2]);
xAngle = Math.toDegrees(orientationValues[1]);
}
java android android-studio android-sensors sensormanager
java android android-studio android-sensors sensormanager
edited Nov 17 at 14:53
asked Nov 17 at 14:32
Paul Schreckenbach
104
104
sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)
returnsnull
when the sensor is not supported by the device. You can log its value to see whether it returnsnull
in the tablet or not ?
– Umer Farooq
Nov 17 at 16:03
It does indeed return null on the tablet. Would you know if there are other sensors that can be used? Thanks
– Paul Schreckenbach
Nov 17 at 16:21
add a comment |
sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)
returnsnull
when the sensor is not supported by the device. You can log its value to see whether it returnsnull
in the tablet or not ?
– Umer Farooq
Nov 17 at 16:03
It does indeed return null on the tablet. Would you know if there are other sensors that can be used? Thanks
– Paul Schreckenbach
Nov 17 at 16:21
sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)
returns null
when the sensor is not supported by the device. You can log its value to see whether it returns null
in the tablet or not ?– Umer Farooq
Nov 17 at 16:03
sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)
returns null
when the sensor is not supported by the device. You can log its value to see whether it returns null
in the tablet or not ?– Umer Farooq
Nov 17 at 16:03
It does indeed return null on the tablet. Would you know if there are other sensors that can be used? Thanks
– Paul Schreckenbach
Nov 17 at 16:21
It does indeed return null on the tablet. Would you know if there are other sensors that can be used? Thanks
– Paul Schreckenbach
Nov 17 at 16:21
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53352181%2fsensormanager-only-working-on-some-devices%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)
returnsnull
when the sensor is not supported by the device. You can log its value to see whether it returnsnull
in the tablet or not ?– Umer Farooq
Nov 17 at 16:03
It does indeed return null on the tablet. Would you know if there are other sensors that can be used? Thanks
– Paul Schreckenbach
Nov 17 at 16:21