可以在Android上检测到“Magnification Gesture”的可访问性吗?

问题描述 投票:0回答:1

我有一个游戏应用程序,它需要重复点击。一些玩家抱怨说,当他们在设备上启用“三击缩放”辅助功能时,它不起作用。

网络搜索向我展示了我在游戏中的can't be disabled,但它能被检测到吗?至少那时我可以向用户解释如何在播放时将其关闭。

我不确定我可以使用哪个Android API来检查此设置。我不是一个原生的Android开发人员,我在Unity工作,谷歌没有发现任何东西。非常感谢!

java c# android unity3d accessibility
1个回答
0
投票

感谢zcui93,我能够使用以下Java测试此设置:

Settings.Secure.getInt( context.getContentResolver(), "accessibility_display_magnification_enabled" );

...只需检查返回值:1 =启用,0 =禁用

这是在Unity C#Script中执行此操作的代码:

public static bool CheckForSystemZoomEnabled()
{
    #if UNITY_ANDROID
    try {
        using(AndroidJavaClass clsUnity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
        {
            AndroidJavaObject objActivity = clsUnity.GetStatic<AndroidJavaObject>("currentActivity");
            AndroidJavaObject objResolver = objActivity.Call<AndroidJavaObject>("getContentResolver");
            using(AndroidJavaClass clsSecure = new AndroidJavaClass("android.provider.Settings$Secure"))
            {
                int val = clsSecure.CallStatic<int>("getInt", objResolver, "accessibility_display_magnification_enabled");
                return val != 0;
            }
        }
    } catch(System.Exception) { }
    #endif
    return false;
}
© www.soinside.com 2019 - 2024. All rights reserved.