Android检测辅助功能是不是开启
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android检测辅助功能是不是开启相关的知识,希望对你有一定的参考价值。
1. 系统设置中的“辅助功能”是用于手机安装一些特殊的辅助应用(例如比如kickback.apk,talkback.apk是辅助的,kickback会配合应用震动,talkback是语音辅助)2. 因手机没有预装该些软件,辅助功能是无法使用的,若有需要,则建议自行安装相关应用,则就可进入系统设置--辅助功能,在辅助功能的界面下面则会显示这些应用。
若机器后续使用过程中遇到问题 参考技术A 代码:
// To check if service is enabled
private boolean isAccessibilitySettingsOn(Context mContext)
int accessibilityEnabled = 0;
final String service = getPackageName() + "/" + YOURAccessibilityService.class.getCanonicalName();
try
accessibilityEnabled = Settings.Secure.getInt(
mContext.getApplicationContext().getContentResolver(),
android.provider.Settings.Secure.ACCESSIBILITY_ENABLED);
Log.v(TAG, "accessibilityEnabled = " + accessibilityEnabled);
catch (Settings.SettingNotFoundException e)
Log.e(TAG, "Error finding setting, default accessibility to not found: "
+ e.getMessage());
TextUtils.SimpleStringSplitter mStringColonSplitter = new TextUtils.SimpleStringSplitter(':');
if (accessibilityEnabled == 1)
Log.v(TAG, "***ACCESSIBILITY IS ENABLED*** -----------------");
String settingValue = Settings.Secure.getString(
mContext.getApplicationContext().getContentResolver(),
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
if (settingValue != null)
mStringColonSplitter.setString(settingValue);
while (mStringColonSplitter.hasNext())
String accessibilityService = mStringColonSplitter.next();
Log.v(TAG, "-------------- > accessibilityService :: " + accessibilityService + " " + service);
if (accessibilityService.equalsIgnoreCase(service))
Log.v(TAG, "We've found the correct setting - accessibility is switched on!");
return true;
else
Log.v(TAG, "***ACCESSIBILITY IS DISABLED***");
return false;
由于辅助功能设置未检测到 iOS 手势
【中文标题】由于辅助功能设置未检测到 iOS 手势【英文标题】:iOS Gesture not detected due to accessibility settings 【发布时间】:2011-07-05 13:52:56 【问题描述】:我正在开发的应用程序需要三点滑动手势。
我已经使用UIGestureRecognizer
成功实现了这一点,并且大部分情况下都可以正常工作。
但是,如果您打开设备缩放辅助功能设置(设置 > 常规 > 辅助功能 > 缩放),则会停止识别手势。
缩放功能使用各种三点手势来操作,所以我可以理解这个取代我的应用程序手势。
但是,有谁知道我如何确定缩放设置是否已打开(或执行缩放辅助手势),以便我至少可以告知用户该手势将不会被识别?
谢谢!
【问题讨论】:
您是继承UIGestureRecognizer
还是使用UISwipeGestureRecognizer
并将numberOfTouchesRequired
属性设置为三个?
我使用了UISwipeGestureRecognizer
,numberOfTouchesRequired
设置为三个
您可以检测到三指和四指滑动...
谢谢 tc。不幸的是,客户不允许这样做……这是应用程序的一个非常具体的 UI 要求。
【参考方案1】:
如果您的目标是 iOS 5,请查看 UIAccessibilityRegisterGestureConflictWithZoom()
。虽然它不会告诉您 Zoom 是否已启用,但它会在发生冲突时通知您的用户。
【讨论】:
【参考方案2】:我会使用 if 语句来检查用户是否启用了可访问性,如果启用,则让您的应用执行四指滑动。
if (isAccessabilityElement)
?你试过吗?
【讨论】:
感谢您的建议,但是此属性表示残障用户可以访问控件。 (例如,所有标准 UIKit 控件默认返回 YES)。不幸的是,这并不能告诉我用户是否打开了辅助功能设置。【参考方案3】:在 UIScrollView 委托方法中有一个选项可以确定是缩放设置还是未设置 但是除了滑动手势识别器之外,您还可以尝试使用 UIPinchGestureREcognizer。 如需更多信息,您可以查看苹果的开发者文档。
【讨论】:
以上是关于Android检测辅助功能是不是开启的主要内容,如果未能解决你的问题,请参考以下文章
如何检查其他应用程序是不是在 Android 中使用辅助功能(BIND_ACCESSIBILITY_SERVICE)权限