AccessibilityManager.java revision 08e2a4b56f23ce02f17300438f76ccc1f663f183
17953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet/* 27953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * Copyright (C) 2009 The Android Open Source Project 37953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * 47953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * Licensed under the Apache License, Version 2.0 (the "License"); 57953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * you may not use this file except in compliance with the License. 67953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * You may obtain a copy of the License at 77953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * 87953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * http://www.apache.org/licenses/LICENSE-2.0 97953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * 107953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * Unless required by applicable law or agreed to in writing, software 117953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * distributed under the License is distributed on an "AS IS" BASIS, 127953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * See the License for the specific language governing permissions and 147953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * limitations under the License. 157953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet */ 167953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet 177953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohetpackage android.view.accessibility; 187953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet 197953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohetimport android.content.Context; 207953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohetimport android.content.pm.ServiceInfo; 217953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet 227953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohetimport java.util.Collections; 237953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohetimport java.util.List; 247953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet 257953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet/** 267953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * System level service that serves as an event dispatch for {@link AccessibilityEvent}s. 277953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * Such events are generated when something notable happens in the user interface, 287953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * for example an {@link android.app.Activity} starts, the focus or selection of a 297953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * {@link android.view.View} changes etc. Parties interested in handling accessibility 307953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * events implement and register an accessibility service which extends 317953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * {@link android.accessibilityservice.AccessibilityService}. 327953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * 337953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * @see AccessibilityEvent 347953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * @see android.accessibilityservice.AccessibilityService 357953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * @see android.content.Context#getSystemService 367953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet */ 377953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohetpublic final class AccessibilityManager { 387953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet private static AccessibilityManager sInstance = new AccessibilityManager(); 397953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet 407953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet /** 417953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * Get an AccessibilityManager instance (create one if necessary). 427953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * 437953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * @hide 447953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet */ 457953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet public static AccessibilityManager getInstance(Context context) { 467953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet return sInstance; 477953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet } 487953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet 497953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet /** 507953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * Create an instance. 517953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * 527953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * @param context A {@link Context}. 537953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet */ 547953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet private AccessibilityManager() { 557953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet } 567953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet 577953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet /** 587953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * Returns if the {@link AccessibilityManager} is enabled. 597953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * 607953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * @return True if this {@link AccessibilityManager} is enabled, false otherwise. 617953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet */ 627953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet public boolean isEnabled() { 637953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet return false; 647953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet } 657953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet 667953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet /** 677953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * Sends an {@link AccessibilityEvent}. If this {@link AccessibilityManager} is not 687953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * enabled the call is a NOOP. 697953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * 707953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * @param event The {@link AccessibilityEvent}. 717953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * 727953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * @throws IllegalStateException if a client tries to send an {@link AccessibilityEvent} 737953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * while accessibility is not enabled. 747953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet */ 757953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet public void sendAccessibilityEvent(AccessibilityEvent event) { 767953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet } 777953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet 787953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet /** 797953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * Requests interruption of the accessibility feedback from all accessibility services. 807953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet */ 817953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet public void interrupt() { 827953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet } 837953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet 847953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet /** 857953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * Returns the {@link ServiceInfo}s of the installed accessibility services. 867953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * 877953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet * @return An unmodifiable list with {@link ServiceInfo}s. 887953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet */ 897953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet public List<ServiceInfo> getAccessibilityServiceList() { 9008e2a4b56f23ce02f17300438f76ccc1f663f183Xavier Ducrohet // normal implementation does this in some case, so let's do the same 9108e2a4b56f23ce02f17300438f76ccc1f663f183Xavier Ducrohet // (unmodifiableList wrapped around null). 927953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet List<ServiceInfo> services = null; 937953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet return Collections.unmodifiableList(services); 947953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet } 957953e7d89b1d4d7297176fbb6aeea882577df8e6Xavier Ducrohet} 96