私は、タブレットの両面横向きと携帯電話の両面縦向きモードを設定する必要があるAndroidアプリを開発しています。
多くの携帯電話とタブレットでテストしましたが、Galaxy nexus 携帯電話 (バージョン 4.2.2) を除いてすべて正常に動作します。
私はそれを達成するために以下のコードを使用しています、
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if ((this.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL)
{
//phone
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//dual side portrait mode
if(Build.VERSION.SDK_INT > 8)
{
this.setRequestedOrientation(7);
}
}
else if ((this.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE)
{
//tablet
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//dual side landscape mode
if(Build.VERSION.SDK_INT > 8)
{
this.setRequestedOrientation(6);
}
}
else if ((this.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE)
{
//tablet
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//dual side landscape mode
if(Build.VERSION.SDK_INT > 8)
{
this.setRequestedOrientation(6);
}
}
}
助けてください!ありがとう!