我想通过原生检测屏幕旋转。
举个例子,当触摸事件发生时,我们可以通过/ dev / input / event *事件设备检测
这可能吗?我的意思是,不使用java。只需使用原生方法。
WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
Display disp = wm.getDefaultDisplay();
int rotation = disp.getRotation(); // Android 2.2
Log.i( "Rotation", "rotation : " + rotation );
switch ( rotation )
{
case Surface.ROTATION_0:
Log.i( "Roation", "Portrait : 0" );
break;
case Surface.ROTATION_90:
Log.i( "Roation", "Landscape : 90" );
break;
case Surface.ROTATION_180:
Log.i( "Roation", "Portrait : 180" );
break;
case Surface.ROTATION_270:
Log.i( "Roation", "Landscape : 270" );
break;
}
答案 0 :(得分:4)
如果您正在使用NativeActivity基础结构(问题并不明显),那么结构onConfigurationChanged
中有一个回调ANativeActivityCallbacks
,它作为{{1}的一部分提供给您对象,ANativeActivity
结构中activity
指向的对象,是android_app
的参数。
只需将启动时的回调重置为您的功能:
android_main
如果您确实使用的是NativeActivity,请使用void OnConfig(ANativeActivity *ac)
{
//...
}
state->activity->callbacks->onConfigurationChanged = OnConfig;
标记问题,而不只是native-activity
。有足够的环境差异来保证额外的标签。