簡體   English   中英

設備方向鎖定時的啟動方向

[英]Startup orientation when device orientation locked

在我的應用中,當System.ACCELEROMETER_ROTATION指示禁用旋轉時,我將setRequestedOrientation()與SCREEN_ORIENTATION_SENSOR或與SCREEN_ORIENTATION_NOSENSOR一起使用。 我認為這就是我應該這樣做的方式,但該應用在不同設備上的行為有所不同。 我有:

  1. 一種應用,其方向始終與主屏幕相同,無論是否鎖定
  2. 鎖定旋轉時被迫垂直放置的一個,與#1相同
  3. 行為類似於#1的行為,直到應用停止,然后即使設備本身被鎖定為橫向,也始終以垂直方向啟動

#3是人們抱怨的地方。 顯然,他們希望“鎖定”將所有東西保持在同一方向,而根據文檔System.ACCELEROMETER_ROTATION不應鎖定任何東西,而只能禁用加速度計檢測。 看起來有些供應商對此有不同的解釋。

行為3是正常現象,還是我應該以某種方式解決的特定設備錯誤? 如何獲得鎖定的方向或主屏幕的方向? 鎖定方向時,完全可以安全地對准方向嗎?

編輯:應用程序會決定是否適合根據設備(屏幕長寬比和其他一些東西)在橫向和縱向之間進行切換。 在這種情況下,既不能通過清單設置一個固定方向,也不能讓系統處理旋轉。 現在要接受我自己的答案以關閉此問題。

您可以通過清單設置默認方向

在每個活動的清單中強制靜態顯示您的方向。 例如,如果您想強制某個活動使用“人像”方向,請將此屬性添加到清單文件中的活動標簽中:

android:screenOrientation="portrait"

您不需要做任何事情。

如果用戶禁用了設備旋轉功能,並且您沒有嘗試強制指定方向,則您的應用將以他們選擇的方向加載。

您無需顯式設置SCREEN_ORIENTATION_SENSORSCREEN_ORIENTATION_NOSENSOR

當您禁用設備上的旋轉功能時,它將首選的方向鎖定為其當前所在的方向。某些啟動器(主屏幕)不支持橫向,因此即使應該將設備鎖定為橫向,它們仍會顯示在肖像中。 啟動不鎖定方向的應用程序時,它將恢復為橫向

弄清楚了。 啟用加速度計旋轉時使用SCREEN_ORIENTATION_SENSOR而未啟用SCREEN_ORIENTATION_USER時,在到目前為止我測試過的所有設備上均可正常使用。

起初,NOSENSOR似乎是一個合適的選擇,但是現在看一下文檔,它只是說加速度計將被忽略,並且關於它所確定的方向沒有任何意義,我想這確實是不確定的。 有點無用的選擇,有點誤導。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM