Я работаю над двумя приложениями одной компании.Мое требование: «Когда я устанавливаю два свежих приложения и выполняю вход в одно приложение, оно должно автоматически входить в другое приложение. И когда я выхожу из одного приложения, один и тот же пользователь также должен выходить из другого приложения».
Например.У меня есть 2 приложения.
- Facebook
- Facebook Messenger.
Когда я вхожу в Facebook от пользователя "Джон", поэтому, когда я открываю Facebook Messenger, он уже залогинен с пользователем "Джон".И когда я выхожу из приложения Facebook, этот пользователь также должен выйти из Facebook Messenger.И наоборот.
Как мне добиться этой функциональности в Android?На самом деле эта функция работает в следующих устройствах:
Вот что я пытался реализовать.
Код
Регистрация получателя в классе Application обоих приложений.
ASampleActionReceiver mASampleActionReceiver = new ASampleActionReceiver();
IntentFilter filterAction = new IntentFilter();
filterAction.addAction("com.sample.example.receiver.operation");
registerReceiver(mASampleActionReceiver, filterAction);
В манифесте обоих приложений.
<receiver android:name=".receiver.ASampleActionReceiver">
<intent-filter>
<action android:name="com.sample.example.receiver.operation" />
</intent-filter>
</receiver>
У нас есть намеренный сервис в обоих приложениях.Служба намерений будет запущена получателем
<service
android:name="com.sample.example.services.SampleOperationService"
android:enabled="true"
android:exported="false" />
и получателем ASampleActionReceiver.java
public class ASampleActionReceiver extends BroadcastReceiver {
Context mContext;
@Override
public void onReceive(Context context, Intent intent) {
mContext = context;
AdoddleLog.d("LOG", intent.getExtras().getString("loginData"));
Intent mIntent = new Intent(mContext, SampleOperationService.class);
mIntent.putExtras(intent);
mContext.startService(mIntent);
}
}
Но устройство с ОС Android 8.0+, получатель не работает, потому что https://developer.android.com/about/versions/oreo/backgroundhttps://developer.android.com/about/versions/oreo/android-8.0-changes#back-all
Так как мне этого добиться?