从Web应用程序远程控制Android应用程序(ASP.Net)

时间:2016-08-22 06:46:04

标签: android

我想通过从Web服务器(Web应用程序)向Android App发送通知来自动启动/停止视频录制。什么是最好的方法?

我心中有以下方法:

  1. 使用Signal R Approach打开Web套接字。
  2. SMS Messaging(应用程序将有SMS接收器事件,基于消息开始/停止录制)。

1 个答案:

答案 0 :(得分:0)

使用FCM,您可以从.net应用程序:

在Android应用程序上发送通知
[WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public void Uploadfirebasedata(string firebaseid, string emailid,string Operation)
    {
        int ret = 0;

        string suc = "success";
        // XmlDocument xmlupdatedoc = new XmlDocument();
        SqlParameter[] param = 

        {      


                new SqlParameter("@firebaseid", DbType.String),

                new SqlParameter("@emailid", DbType.String),

                new SqlParameter("@Operation", DbType.String),

           };

        param[0].Value = firebaseid;
        param[1].Value = emailid;

        param[2].Value = Operation;

        string SERVER_API_KEY = "YOUR SERVER API KEY";
        var SENDER_ID = "YOUR SENDER ID";
        var value = "Hi this is from HRM Team";
        WebRequest tRequest;
        tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
        tRequest.Method = "post";
        //tRequest.ContentType = " application/x-www-form-urlencoded;charset=UTF-8";
        //tRequest.Headers.Add(string.Format("Authorization: key={0}", SERVER_API_KEY));

        //tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));

        //string postData = "collapse_key=score_update&time_to_live=108&delay_while_idle=1&data.message=" + value + "&data.time=" + System.DateTime.Now.ToString() + "&registration_id=" +firebaseid + "";
        //Console.WriteLine(postData);
        //Byte[] byteArray = Encoding.UTF8.GetBytes(postData);

        tRequest.ContentType = "application/json";
        tRequest.Headers.Add(string.Format("Authorization: key={0}", SERVER_API_KEY));

        tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));
        var data = new
        {
            to = firebaseid,
            notification = new
            {
                body = value,
                title = "HRM",
                icon = "myicon"
            }
        };


        var serializer = new JavaScriptSerializer();
        var json = serializer.Serialize(data);

        Byte[] byteArray = Encoding.UTF8.GetBytes(json);

        tRequest.ContentLength = byteArray.Length;

        Stream dataStream = tRequest.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();

        WebResponse tResponse = tRequest.GetResponse();

        dataStream = tResponse.GetResponseStream();

        StreamReader tReader = new StreamReader(dataStream);

        String sResponseFromServer = tReader.ReadToEnd();


        tReader.Close();
        dataStream.Close();
        tResponse.Close();
      //  return sResponseFromServer;

        ret = objdata.ExecuteNonQuery("SP_TestWebServiceOperation", param);


        if (ret == 1)
        {

            HttpContext.Current.Response.Write(new JavaScriptSerializer().Serialize(suc + sResponseFromServer));

            // xmlupdatedoc.LoadXml("<root><item>Successful</item></root>");

        }
        else
        {
            //xmlupdatedoc.LoadXml("<root><item>Unsuccessful</item></root>");

        }


    }

首先,您已将应用注册到firebase控制台。 使用webservice从Android应用程序获取令牌