/**
  * Get an AccessibilityManager instance (create one if necessary).
  *
  * @hide
  */
 public static AccessibilityManager getInstance(Context context) {
   synchronized (sInstanceSync) {
     if (sInstance == null) {
       IBinder iBinder = ServiceManager.getService(Context.ACCESSIBILITY_SERVICE);
       IAccessibilityManager service = IAccessibilityManager.Stub.asInterface(iBinder);
       sInstance = new AccessibilityManager(context, service);
     }
   }
   return sInstance;
 }
  private void tryConnectToServiceLocked(IAccessibilityManager service) {
    if (service == null) {
      IBinder iBinder = ServiceManager.getService(Context.ACCESSIBILITY_SERVICE);
      if (iBinder == null) {
        return;
      }
      service = IAccessibilityManager.Stub.asInterface(iBinder);
    }

    try {
      final int stateFlags = service.addClient(mClient, mUserId);
      setStateLocked(stateFlags);
      mService = service;
    } catch (RemoteException re) {
      Log.e(LOG_TAG, "AccessibilityManagerService is dead", re);
    }
  }