प्रौद्योगिकी साझेदारी

सुलभता शॉर्टकट चिह्न

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

समस्या पृष्ठभूमि

परीक्षणप्रतिक्रिया दर्शयति यत् सुलभताशॉर्टकट् सेटिंग्स् मध्ये सुलभताचिह्नैः सह असङ्गताः सन्ति ।

सुलभं शॉर्टकट् प्लवमानं विण्डो

1. प्लवमानं विण्डो systemui मध्ये अस्ति
frameworksbasepackagesSystemUIsrccomandroidsystemuiaccessibilityfloatingmenuप्रवेशतालक्ष्यएडाप्टर.जावा
चिह्नं कथं प्राप्तव्यम् : १.

final AccessibilityTarget target = mTargets.get(position);
holder.mIconView.setBackground(target.getIcon());
  • 1
  • 2

frameworksbasepackagesSystemUIsrccomandroidsystemuiaccessibilityfloatingmenuMenuInfoRepository.java

void loadMenuTargetFeatures(OnInfoReady<List<AccessibilityTarget>> callback) {
    callback.onReady(getTargets(mContext, ACCESSIBILITY_BUTTON));
}
  • 1
  • 2
  • 3

2. दत्तांशस्रोतः
frameworksbasecorejavacomandroidआन्तरिकसुलभतासंवादप्रवेशतालक्ष्यसहायक.जावा

public static List<AccessibilityTarget> getTargets(Context context,@ShortcutType int shortcutType)

  • 1
  • 2

AccessibilityTarget Icon दत्तांशः तः आगच्छति
frameworksbasecorejavacomandroidआन्तरिकसुलभतासंवादप्रवेशतासेवालक्ष्य.जावा

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)));
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

द्रष्टुं शक्यते यत् बाधा-रहितसेवा/क्रियाकलापं समर्थयति मूलप्रतिबिम्बं प्रत्यक्षतया systemui मध्ये प्रदर्शितं भवति ।

सेटिंग् मध्ये अभिगम्यता मेनू

सेटिंग्स्srccomandroidsettingsaccessibilityRestrictedPreferenceHelper.java

public List<RestrictedPreference> createAccessibilityServicePreferenceList(
 List<AccessibilityServiceInfo> installedServices) {
    Drawable icon = resolveInfo.loadIcon(mPm);
}
  • 1
  • 2
  • 3
  • 4

सेटिङ्ग् इत्यस्मिन् अधिग्रहणविधिः systemUI इत्यस्मिन् इव एव अस्ति । सेवायाः resolveInfo.loadIcon (mPm) इत्यस्य माध्यमेन सर्वं;

भेदः : १.
सेटिङ्ग् मध्ये Drawable इत्येतत् AdaptiveIcon इत्यत्र परिवर्तितं भवति ततः प्राधान्यं प्रति पारितं भवति । अतः गोलकोणाः प्रदर्शिताः भवन्ति ।

private RestrictedPreference createRestrictedPreference(){
	preference.setIcon(Utils.getAdaptiveIcon(mContext, icon, Color.WHITE));
}
  • 1
  • 2
  • 3
सुलभतायां प्रदर्शयितुं एकं प्रदर्शनं रचयन्तु

इदं android.accessibilityservice.AccessibilityService इत्यस्य माध्यमेन पञ्जीकृतं भवति ततः स्वयमेव प्रणाल्याः लोड् भवति ।
AndroidManifest.xml

        <service
            android:name=".MyAccessibilityService"
            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
            android:enabled="true"
            android:exported="false">
            <intent-filter>
                <action
                    android:name="android.accessibilityservice.AccessibilityService" />
            </intent-filter>
            <meta-data
                android:name="android.accessibilityservice"
                android:resource="@xml/accessibility_service_config" />
        </service>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

res / xml / अभिगम्यता_सेवा_विन्यास.xml

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:description="@string/setting_accessibility_tip"
    android:accessibilityEventTypes="typeWindowStateChanged"
    android:packageNames="com.whatsapp"
    android:accessibilityFeedbackType="feedbackGeneric"
    android:notificationTimeout="100"
    android:accessibilityFlags="flagDefault"
    android:canRetrieveWindowContent="true"/>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9