beniv Ответов: 3

Push-уведомления в Android с помощью C#


Я создал информационную систему для студентов в android. Студенты должны войти в систему, используя его acounts create в SQLSERVER. когда он успешно войдет в приложение,отобразит некоторые последние новости и т. д. im geting данные из sqlserver с помощью службы wcf.
но я запасаюсь, когда вставляю данные для stundet в sqlserver, как я могу сообщить пользователю, например, уведомление (GCM), что у студента есть какие-то новые новости.

Извините за мой английский

beniv

Я ищу несколько got suugesstions

3 Ответов

Рейтинг:
2

Peter Leow

Вы можете попробовать Google Cloud Messaging для Android[^].
В папке android sdk\extras\google есть образец gcm. Попробовать ее.
Вкратце, это работает следующим образом:
1. Устройства Вашего студента регистров с GCM сервер и получаем код регистрации.
2. сохраните эту регистрацию в вашем sqlserver
3. чтобы отправить сообщение на устройство этого студента, отправьте сообщение с этим регистрационным идентификатором на сервер gcm, который, в свою очередь, отправит сообщение на устройство студента.


Рейтинг:
2

Mogya

использование FCM.Net;
использование Newtonsoft.Json;
использование системы;
использование системы.Коллекции.Общий;
использование System.Text;
использование системы.Нарезание резьбы.Задачи;


использование System.Net;
используя системы.Нет.Протокол HTTP;
используя системы.Нет.Протоколу HTTP.Заголовки;
использование системы.ИО;


Уважаемый весь этот рабочий код с использованием fcm.net ядро и asp.net основной веб-api

общих асинхронных задачу<типа bool и GT; NotifyAsync(строка завершен, serverKey строку, строку тела )
{

строка json = "{\"to\": \"" + deviceToken + "\",\"data\": {\"message\": \"" + body + "\",}}";
пробовать
{
//var result = "-1";
//var webAddr = "https://fcm.googleapis.com/fcm/send";

//var httpWebRequest = (HttpWebRequest)WebRequest.Создать(webAddr);
//класс HttpWebRequest.ContentType = "application/json";
//класс HttpWebRequest.Headers.Add("Authorization:key=" + serverKey);
//класс HttpWebRequest.Метод = "сообщение";

//используя (ВАР модулю записи StreamWriter = новая модулю записи StreamWriter(класса HttpWebRequest.Метод getrequeststream()))
//{
// string json = "{\"to\": \ "" + deviceToken + "\",\"data\": {\"message\": \"это сообщение темы Firebase Cloud Messaging!\",}}";
// модулю записи StreamWriter.Запись(json);
// модулю записи StreamWriter.Промывать();
//}

/в /var HttpResponse, который = поджидают класса HttpWebRequest.GetResponseAsync();
//используя (вар что streamreader = новый поток streamreader(объект HttpResponse.GetResponseStream()))
//{
// результат = что streamreader.ReadToEnd();
//}

строка к baseURL = "https://fcm.googleapis.com/fcm/send";
var client = новый HttpClient();
клиент.BaseAddress = новый Uri(Baseurl);
клиент.DefaultRequestHeaders.Четкий();

//var param = JsonConvert.SerializeObject(Myproduct);
//string postBody = JsonConvert.SerializeObject(Myproduct);
клиент.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
клиент.DefaultRequestHeaders.TryAddWithoutValidation("авторизация", "ключ="+ serverKey);

HttpResponseMessage Res = ожидание клиента.PostAsync(Baseurl, new StringContent(json, Encoding.UTF8, "application/json"));

если (рез. IsSuccessStatusCode)
{
строки returndata = поджидают содержание резолюции.ReadAsStringAsync();
//Myproduct = JsonConvert.DeserializeObject<product>(returndata);
// Система.Окна.Форм.Функции MessageBox.Показать("запись побрилась ");
вернуть true;
}

}
поймать (исключение бывший)
{
// _лесоруб.LogError($"исключение, вызванное службой Notify: {ex}");
бросать;
}

возвращать false;
}
}


Рейтинг:
0

sajidur rahman

Вы можете использовать firebase cloud messaging.

Следующий метод вы можете использовать.

static void SendMessage()
{
    string serverKey = "Your server key";

    try
    {
        var result = "-1";
        var webAddr = "https://fcm.googleapis.com/fcm/send";

        var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Headers.Add("Authorization:key=" + serverKey);
        httpWebRequest.Method = "POST";

        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
            string json = "{\"to\": \"client Device token\",\"data\": {\"message\": \"This is a Firebase Cloud Messaging Topic Message!\",}}";
            streamWriter.Write(json);
            streamWriter.Flush();
        }

        var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            result = streamReader.ReadToEnd();
        }

       // return result;
    }
    catch (Exception ex)
    {
      //  Response.Write(ex.Message);
    }
}