哪个网站可以代做试题,个人网站备案可以做博客吗,在百度做网站推广怎么做,金华网站推广问题背景
测试反馈#xff0c;无障碍快捷方式和setting里的无障碍图标不一致。
无障碍快捷方式悬浮窗
1、悬浮窗在systemui中 frameworks\base\packages\SystemUI\src\com\android\systemui\accessibility\floatingmenu\AccessibilityTargetAdapter.java 图标获取方式…问题背景
测试反馈无障碍快捷方式和setting里的无障碍图标不一致。
无障碍快捷方式悬浮窗
1、悬浮窗在systemui中 frameworks\base\packages\SystemUI\src\com\android\systemui\accessibility\floatingmenu\AccessibilityTargetAdapter.java 图标获取方式
final AccessibilityTarget target mTargets.get(position);
holder.mIconView.setBackground(target.getIcon());frameworks\base\packages\SystemUI\src\com\android\systemui\accessibility\floatingmenu\MenuInfoRepository.java
void loadMenuTargetFeatures(OnInfoReadyListAccessibilityTarget callback) {callback.onReady(getTargets(mContext, ACCESSIBILITY_BUTTON));
}2、数据来源 frameworks\base\core\java\com\android\internal\accessibility\dialog\AccessibilityTargetHelper.java
public static ListAccessibilityTarget getTargets(Context context,ShortcutType int shortcutType)
AccessibilityTarget Icon数据来自 frameworks\base\core\java\com\android\internal\accessibility\dialog\AccessibilityServiceTarget.java
AccessibilityServiceTarget(Context context, ShortcutType int shortcutType,AccessibilityFragmentType int fragmentType,NonNull AccessibilityServiceInfo serviceInfo) {super(context,shortcutType,fragmentType,isShortcutContained(context, shortcutType,serviceInfo.getComponentName().flattenToString()),serviceInfo.getComponentName().flattenToString(),serviceInfo.getResolveInfo().serviceInfo.applicationInfo.uid,serviceInfo.getResolveInfo().loadLabel(context.getPackageManager()),serviceInfo.getResolveInfo().loadIcon(context.getPackageManager()),convertToKey(convertToUserType(shortcutType)));
}由此可见systemui里直接显示的支持无障碍Service/activity的原图。
setting中的无障碍菜单
Settings\src\com\android\settings\accessibility\RestrictedPreferenceHelper.java
public ListRestrictedPreference createAccessibilityServicePreferenceList(ListAccessibilityServiceInfo installedServices) {Drawable icon resolveInfo.loadIcon(mPm);
}setting里获取方式和systemUI一样。都是通过service的resolveInfo.loadIcon(mPm);
区别 setting里把Drawable转换成了AdaptiveIcon再传给了preference。所以显示圆角。
private RestrictedPreference createRestrictedPreference(){preference.setIcon(Utils.getAdaptiveIcon(mContext, icon, Color.WHITE));
}创建demo显示在无障碍
是通过android.accessibilityservice.AccessibilityService注册然后系统自动加载进去的。 AndroidManifest.xml serviceandroid:name.MyAccessibilityServiceandroid:permissionandroid.permission.BIND_ACCESSIBILITY_SERVICEandroid:enabledtrueandroid:exportedfalseintent-filteractionandroid:nameandroid.accessibilityservice.AccessibilityService //intent-filtermeta-dataandroid:nameandroid.accessibilityserviceandroid:resourcexml/accessibility_service_config //serviceres/xml/accessibility_service_config.xml
?xml version1.0 encodingutf-8?
accessibility-service xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:descriptionstring/setting_accessibility_tipandroid:accessibilityEventTypestypeWindowStateChangedandroid:packageNamescom.whatsappandroid:accessibilityFeedbackTypefeedbackGenericandroid:notificationTimeout100android:accessibilityFlagsflagDefaultandroid:canRetrieveWindowContenttrue/