2016-11-26 3 views
0

Я уже думал о том, как это сделать, но пока не нашел пути. Я хочу, чтобы мои пользователи видели друг друга в режиме онлайн/офлайн, как во многих социальных сетях. Например, логическое значение для каждого пользователя. Истинный означает, что он-лайн и ложный отключен. Но когда я устанавливаю значение boolean в false? В тот момент, когда пользователь закрывает приложение, кажется хорошим моментом, но из моих исследований нет надежного способа узнать, убито ли приложение.Отслеживание онлайн-состояния пользователя в автономном режиме с помощью Firebase

Итак, как бы вы, ребята, отслеживали состояние своих пользователей в режиме онлайн с Firebase или с помощью собственного сервера или что-то еще. Мне любопытно

Говоря онлайн и офлайн, я имею в виду, если пользователь использует приложение в тот момент.

+0

См. Https://firebase.google.com/docs/database/android/offline-capabilities#section-connection-state –

ответ

0

Вы можете установить прослушиватель для подключения к Интернету. Как проверить, подключен ли Интернет или нет. Если он не подключен, установите значение boolean в false, и если интернет подключен, логическое значение будет true. Посмотрите на коде:

ConnectivityManager cm =(ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
    boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting(); 

    if(isConnected) 
    { 
     // set your boolean to true 
    } 
    if(!isConnected) 
    { 
     // set your boolean to false here 
    } 
+0

Хм, этот код внутри службы справа? – user6650650

+0

Вы можете выбрать услугу. – CopsOnRoad

+0

@Jack Вы уверены, что этот код соответствует вопросу? –

0

Firebase обеспечивает удобный способ сделать это с помощью специального .info/connected пути

var amOnline = new Firebase('https://<demo>.firebaseio.com/.info/connected'); 
var userRef = new Firebase('https://<demo>.firebaseio.com/presence/' + userid); 
amOnline.on('value', function(snapshot) { 
    if (snapshot.val()) { 
    // User is online. 
    userRef.set(true); 
    } else { 
    // User is offline. 
    // WARNING: This won't work! See an explanation below. 
    userRef.set(false); 
    } 
}); 

Вот хорошее объяснение об отслеживании состояния пользователя. https://firebase.googleblog.com/2013/06/how-to-build-presence-system.html

Смежные вопросы