23
A
回答
45
這應該做的伎倆爲您提供:
import android.provider.Settings;
public static void setAutoOrientationEnabled(Context context, boolean enabled)
{
Settings.System.putInt(context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, enabled ? 1 : 0);
}
添加許可權的AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
您可以找到的文檔here
2
始終使用用戶指定的屏幕方向,這將應用用戶選擇的任何方向,並且如果其禁用則不會旋轉屏幕。
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
1
這是我對這個問題的障礙。我必須實現一個按鈕,其功能與設置菜單中的鎖定按鈕相同。
可以使用setRotationScreenFromSettings解決您的問題
public static boolean getRotationScreenFromSettingsIsEnabled(Context context)
{
int result = 0;
try
{
result = Settings.System.getInt(context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION);
}
catch (Settings.SettingNotFoundException e)
{
e.printStackTrace();
}
return result == 1;
}
public static void setRotationScreenFromSettings(Context context, boolean enabled)
{
try
{
if (Settings.System.getInt(context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION) == 1)
{
Display defaultDisplay = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
Settings.System.putInt(context.getContentResolver(), Settings.System.USER_ROTATION, defaultDisplay.getRotation());
Settings.System.putInt(context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0);
}
else
{
Settings.System.putInt(context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 1);
}
Settings.System.putInt(context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, enabled ? 1 : 0);
}
catch (Settings.SettingNotFoundException e)
{
e.printStackTrace();
}
}
private void regirsterLockScreenOrientationChangedListner()
{
ContentObserver rotationObserver = new ContentObserver(new Handler())
{
@Override
public void onChange(boolean selfChange)
{
refreshLockScreenOrientationBtn();
}
};
context.getContentResolver().registerContentObserver(Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION),
true, rotationObserver);
}`
添加權限在AndroidManifest.xml中
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
1
你必須使用下面的代碼裏面的onCreate()函數來解決它。工作...
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
相關問題
- 1. Android如何以編程方式啓用/禁用自動同步
- 2. 以編程方式啓用/禁用市場自動更新
- 3. 以編程方式啓用/禁用Log4jLogger?
- 4. 以編程方式啓用/禁用鍵盤聲音和振動
- 5. 在macOS中以編程方式啓用,禁用和啓動服務
- 6. 如何以編程方式啓用/禁用移動數據
- 7. 禁用自動旋轉
- 8. 禁用自動旋轉
- 9. 以編程方式禁用和啓用Jelly Bean導航欄
- 10. 以編程方式啓用和禁用某些@ RabbitListener的Spring?
- 11. 如何以編程方式啓用和禁用NETWORK_PROVIDER
- 12. 以編程方式禁用ScollViewer滾動
- 13. 以編程方式禁用gif動畫
- 14. 以編程方式自動旋轉鎖定
- 15. Android:以編程方式禁用和啓用活動在android中不起作用
- 16. 以編程方式啓用我禁用的應用程序
- 17. 以編程方式啓用/禁用相機應用程序
- 18. 如何在啓動時以編程方式禁用Spring @JmsListener
- 19. 以編程方式啓用/禁用沉浸模式
- 20. 如何以編程方式在android中啓用/禁用gps和移動數據?
- 21. 以編程方式旋轉UIViewController
- 22. 以編程方式旋轉UIView
- 23. 以編程方式旋轉UIViewController?
- 24. 使用CoreBluetooth以編程方式啓用/禁用藍牙
- 25. 啓動後禁用屏幕旋轉?
- 26. 如何以編程方式啓用和禁用USB在Android應用程序
- 27. 以編程方式暫時禁用自動更新
- 28. 以編程方式禁用Gboard上的自動建議
- 29. Magento - 以編程方式禁用自動索引
- 30. 以編程方式禁用自動佈局約束
這似乎工作,但它鎖定你鎖定橫向方向,即使我在肖像。我正在測試蜂巢片,所以我不確定是否有區別....這是預期的行爲嗎? – christoff 2011-06-29 20:31:31