2016-07-18 98 views
0

我想在android手机上收到gcm通知时删除声音通知。我在我的代码中设置了data.sound=0,但没有任何结果。即使应用已关闭,Android也会播放声音! 有什么方法可以实现我的目标? 谢谢。c#android GCM通知禁用声音

public void SendNotification(string deviceId, string message, int badgeCount) 
{ 
    string GoogleAppID = "...."; 
    var SENDER_ID = "....."; 

    WebRequest webRequest; 
    webRequest = WebRequest.Create("https://android.googleapis.com/gcm/send"); 
    webRequest.Method = "post"; 
    webRequest.ContentType = " application/x-www-form-urlencoded;charset=UTF-8"; 
    webRequest.Headers.Add(string.Format("Authorization: key={0}", GoogleAppID)); 
    webRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID)); 

    string postData = string.Format("collapse_key=score_update&time_to_live=108&delay_while_idle=0&data.message={0} &data.time={1} &data.badge={3} &data.sound={4}&registration_id={2}", message, DateTime.UtcNow, regID, badgeCount, "default"); 

    Byte[] byteArray = Encoding.ASCII.GetBytes(postData); 
    webRequest.ContentLength = byteArray.Length; 
    Stream dataStream = webRequest.GetRequestStream(); 
    dataStream.Write(byteArray, 0, byteArray.Length); 
    dataStream.Close(); 
    WebResponse webResponse = webRequest.GetResponse(); 
    dataStream = webResponse.GetResponseStream(); 
    using (StreamReader streamReader = new StreamReader(dataStream)) 
    { 
     String sResponseFromServer = streamReader.ReadToEnd(); 
     streamReader.Close(); 
     dataStream.Close(); 
     webResponse.Close(); 
    } 
} 
+0

如何在C#中编写Android应用程序? – user4759923

+0

VS .NET Pro 2013,它是一个WFA应用程序 – seq16

回答

0

您可以使用Notification.Builder与公共方法setDefaults

setDefaults提到的,

Notification.Builder setDefaults (int defaults)

其通知属性将从系统默认值被继承设置。

请注意,值应该是DEFAULT_SOUND使用默认通知声音。

给出的解决方案和一些评论在这个SO后 - How to change notification sound by code in android?希望可以帮助你更好地理解。