Интер приложение связи, как Facebook и Facebook мессенджер в Android - PullRequest
0 голосов
/ 20 ноября 2018

Я работаю над двумя приложениями одной компании.Мое требование: «Когда я устанавливаю два свежих приложения и выполняю вход в одно приложение, оно должно автоматически входить в другое приложение. И когда я выхожу из одного приложения, один и тот же пользователь также должен выходить из другого приложения».

Например.У меня есть 2 приложения.

  1. Facebook
  2. 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

Так как мне этого добиться?

...