If you just want to find the current orientation of the screen, the sensor
manager is just totally the wrong direction to take.

What you want to do is use getResources().getConfiguration() (sorry I
incorrectly previously posted to use getDisplayMetrics()).

You can follow the docs on getRequestedOrientation() to see the (fairly
large) set of possible values it returns and that usually it is not telling
you the actual current orientation:

http://developer.android.com/reference/android/app/Activity.html#getRequestedOrientation()
http://developer.android.com/reference/android/content/pm/ActivityInfo.html#screenOrientation
http://developer.android.com/reference/android/R.attr.html#screenOrientation

So if you are getting SCREEN_ORIENTATION_PORTRAIT or
SCREEN_ORIENTATION_LANDSCAPE from here, you are just finding out that you
had told the system that you want to force the screen to be portrait or
landscape while your activity is in the foreground.

This is what you want to use if you just want to find out the current screen
orientation:

http://developer.android.com/reference/android/content/res/Resources.html#getConfiguration()
http://developer.android.com/reference/android/content/res/Configuration.html#orientation

On Tue, Mar 24, 2009 at 11:16 PM, suhas gavas <suhas.ga...@gmail.com> wrote:

> Hi
> make use of sensorListener and it will work ......... i have used the same
> .......... when u use sensorlistener and sensormanager in ur view it has got
> an override method as onSizeChanged which return the width and
> height......... so using change in size u will get the orientation
>
> Below is a code for u of orientation check ......... enjoy :
>
>
> import android.app.Activity;
> import android.content.Context;
> import android.os.Bundle;
> import android.view.View;
> import android.hardware.SensorManager;
> import android.hardware.SensorListener;
> import android.util.Log;
> import android.graphics.Bitmap;
> import android.graphics.Canvas;
> import android.graphics.Color;
> import android.graphics.Paint;
> import android.graphics.Path;
> import android.graphics.RectF;
>
> public class Midlet extends Activity {
>     /** Tag string for our debug logs */
>     private static final String TAG = "Sensors";
>
>     private SensorManager mSensorManager;
>     private GraphView mGraphView;
>
>     private class GraphView extends View implements SensorListener
>     {
>
>         public GraphView(Context context) {
>             super(context);
>         }
>
>         @Override
>         protected void onSizeChanged(int w, int h, int oldw, int oldh) {
>             System.out.println("on sizechanged");
>             super.onSizeChanged(w, h, oldw, oldh);
>         }
>
>         @Override
>         protected void onDraw(Canvas canvas) {
>
>         }
>
>         public void onSensorChanged(int sensor, float[] values) {
>
>         }
>
>         public void onAccuracyChanged(int sensor, int accuracy) {
>             // TODO Auto-generated method stub
>
>         }
>     }
>
>     /**
>      * Initialization of the Activity after it is first created.  Must at
> least
>      * call {...@link android.app.Activity#setContentView setContentView()} to
>      * describe what is to be displayed in the screen.
>      */
>     @Override
>     protected void onCreate(Bundle savedInstanceState) {
>         // Be sure to call the super class.
>         super.onCreate(savedInstanceState);
>
>         mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
>         mGraphView = new GraphView(this);
>         setContentView(mGraphView);
>     }
>
>     @Override
>     protected void onResume() {
>         super.onResume();
>         mSensorManager.registerListener(mGraphView,
>                 SensorManager.SENSOR_ACCELEROMETER |
>                 SensorManager.SENSOR_MAGNETIC_FIELD |
>                 SensorManager.SENSOR_ORIENTATION,
>                 SensorManager.SENSOR_DELAY_FASTEST);
>     }
>
>     @Override
>     protected void onStop() {
>         mSensorManager.unregisterListener(mGraphView);
>         super.onStop();
>
>     }
> }
>
>
> On Wed, Mar 25, 2009 at 11:26 AM, Suman <ipeg.stud...@gmail.com> wrote:
>
>>
>> Hi....
>>
>>
>>
>>               Many thanks for replies. I actually want to do
>> something if the screen orientation is landscap. Am trying something
>> like this...............
>>
>>        if(getRequestedOrientation()== landscap)
>> {
>>
>> {
>>
>>  But it was not working. So if the way is correct then please tell
>> me
>>        if(getRequestedOrientation()== ????)
>>
>> Or suggest something another way.
>>  Thanks in advance.
>>
>>
>
> >
>


-- 
Dianne Hackborn
Android framework engineer
hack...@android.com

Note: please don't send private questions to me, as I don't have time to
provide private support.  All such questions should be posted on public
forums, where I and others can see and answer them.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to