Extend BinderChannel to support cross-user communication and introduce BinderChannelCredentials (io.grpc.binder.*) in experimental.
- Langage dominant
- Java
- Étoiles
- 12.1k
- Forks
- 4k
- Merge moyen
- 2 j 17 h
- PR mergées (30 j)
- 37
Description
BinderChannel, as specified in [gRFC L73](https://github.com/grpc/proposal/blob/master/L73-java-binderchannel.md) only supports the cross-process communication within the same Android user. However, some special Android applications need to do cross-user communication either using [Context.bindServiceAsUser](https://developer.android.com/reference/android/content/Context#bindServiceAsUser(android.content.Intent,%20android.content.ServiceConnection,%20int,%20android.os.UserHandle)) or [DevicePolicyManager.bindDeviceAdminServiceAsUser](https://developer.android.com/reference/android/app/admin/DevicePolicyManager#bindDeviceAdminServiceAsUser(android.content.ComponentName,%20android.content.Intent,%20android.content.ServiceConnection,%20int,%20android.os.UserHandle)).
TargetUserHandle is introduced in BinderChannel to enhance this use case. In the meanwhile BinderChannelCredentials is introduced in experimental stage to capture arbitrary arguments needed by DevicePolicyManager or other Android components to establish a binder connection.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par lire gRFC L73 ainsi que les API Android bindServiceAsUser et bindDeviceAdminServiceAsUser. Localisez ensuite BinderChannel et le package expérimental io.grpc.binder ; le travail est terminé lorsque les cibles inter-utilisateurs et BinderChannelCredentials prennent en charge les arguments arbitraires nécessaires pour établir ces connexions Binder.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- android, java
- Domaine
- mobile-dev
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100