有些设备没有提供方向数据

时间:2011-11-21 12:13:22

标签: android exception resources orientation

我的应用程序尝试使用以下方法查找设备的方向:

int orientation = getResources().getConfiguration.orientation;

这似乎在我的三星Galaxy S2上完美运行但是当在HTC Desire HD上测试它然后尝试在Toast中引用我的整数以检查它找到正确的方向时,它会抛出一个Resources $ NotFoundException。

我认为这种找到手机方向的方法并不总是有效,如果是这样,为什么在我尝试引用整数时它不仅仅会抛出NullPointerException?

我的应用程序捕获照片,因此我需要找到手机方向,以便设置SurfaceView的尺寸并根据需要旋转图像。有没有其他方法可以找到手机的方向?

提前感谢您的回复。

1 个答案:

答案 0 :(得分:1)

当您致电Toast.makeText()时,请注意有两种方法:makeText(Context context, int resId, int duration)makeText(Context context, CharSequence text, int duration)。当您使用整数时,将调用第一个方法,Android会尝试查找与整数关联的资源,这不是您想要的。

最简单的方法是将整数转换为字符串:

Toast.makeText(context, Integer.toString(orientation), Toast.LENGTH_SHORT).show();

这样Android就不会搜索任何资源,并会显示所需的文字。