Merge "Fix the translation doesn't work" into udc-dev
diff --git a/services/translation/java/com/android/server/translation/TranslationManagerServiceImpl.java b/services/translation/java/com/android/server/translation/TranslationManagerServiceImpl.java
index 2d382a2..79046db 100644
--- a/services/translation/java/com/android/server/translation/TranslationManagerServiceImpl.java
+++ b/services/translation/java/com/android/server/translation/TranslationManagerServiceImpl.java
@@ -37,6 +37,7 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
+import android.os.Binder;
 import android.os.Bundle;
 import android.os.IBinder;
 import android.os.IRemoteCallback;
@@ -160,11 +161,20 @@
                 return null;
             }
             final ComponentName serviceComponent = ComponentName.unflattenFromString(serviceName);
-            if (!isServiceAvailableForUser(serviceComponent)) {
+            boolean isServiceAvailableForUser;
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                isServiceAvailableForUser = isServiceAvailableForUser(serviceComponent);
                 if (mMaster.verbose) {
-                    Slog.v(TAG, "ensureRemoteServiceLocked(): " + serviceComponent
-                            + " is not available,");
+                    Slog.v(TAG, "ensureRemoteServiceLocked(): isServiceAvailableForUser="
+                            + isServiceAvailableForUser);
                 }
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+            if (!isServiceAvailableForUser) {
+                Slog.w(TAG, "ensureRemoteServiceLocked(): " + serviceComponent
+                        + " is not available,");
                 return null;
             }
             mRemoteTranslationService = new RemoteTranslationService(getContext(), serviceComponent,