At the documentation there is a Note
Note: When you declare one of the landscape or portrait values, it is
considered a hard requirement for the orientation in which the
activity runs. As such, the value you declare enables filtering by
services such as Google Play so your application is available only to
devices that support the orientation required by your activities. For
example, if you declare either "landscape", "reverseLandscape", or
"sensorLandscape", then your application will be available only to
devices that support landscape orientation. However, you should also
explicitly declare that your application requires either portrait or
landscape orientation with the element. For example,
. This
is purely a filtering behavior provided by Google Play (and other
services that support it) and the platform itself does not control
whether your app can be installed when a device supports only certain
orientations.
So I guess that the device you are using has something different in this support or does not support it at all!
Something else that you should have in mind is that you can install/test such apps throw adb to devices that the Google Play will not allow to be installed due to these filtering features.
Another way to force orientation is by using
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
before setting the screen of each activity
ie. before the setContentView(R.layout.activity_main);
.
Even this code is not sure that is going to work on your device.
In the past, I have got reports of strange behaviors regarding orientation locking but it was quite the opposite as the setRequestedOrientation
doesn't work whereas the lock thought AndroidManifest.xml
is working.