android app如何获取导航栏的模式

cuxqih21  于 2023-05-15  发布在  Android
关注(0)|答案(2)|浏览(187)

它的意思是,应用程序如何获得导航栏模式在以下3种模式中的哪种

  • 手势导航
  • 3键导航
  • 2按钮导航
nmpmafwu

nmpmafwu1#

你可以使用下面的代码,可能不适用于所有的Android设备

public static int isEdgeToEdgeEnabled(Context context) {
        Resources resources = context.getResources();
        int resourceId = resources.getIdentifier("config_navBarInteractionMode", "integer", "android");
        if (resourceId > 0) {
            return resources.getInteger(resourceId);
        }
        return 0;
    }

isEdgeToEdgeEnabled函数返回的值如下:

  • 导航显示3个按钮
  • 使用2个按钮显示导航(Android P导航模式)
  • 全屏手势(Android Q上的手势)
wfveoks0

wfveoks02#

import android.content.Context
import android.provider.Settings

enum class SystemNavigation {
    THREE_BUTTON,
    TWO_BUTTON,
    GESTURE;

    companion object {
        fun create(context: Context) = values().getOrNull(
            Settings.Secure.getInt(context.contentResolver, "navigation_mode", -1)
        )
    }
}

用法

val systemNavigation = SystemNavigation.create(context)

相关问题