Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone 7 whatsapp如何在windows phone的后台获取消息?_Windows Phone 7_Whatsapp_Background Agent_Windows Phone Voip - Fatal编程技术网

Windows phone 7 whatsapp如何在windows phone的后台获取消息?

Windows phone 7 whatsapp如何在windows phone的后台获取消息?,windows-phone-7,whatsapp,background-agent,windows-phone-voip,Windows Phone 7,Whatsapp,Background Agent,Windows Phone Voip,Widows Phone Store上Whatsapp的最新更新后,我注意到,现在,一旦他们在我的设备上显示消息的祝酒词,他们就会将消息标记为已送达(通知发件人消息已到达我的设备) 在我让toast通知消失后,我关闭了所有数据连接,打开Whatsapp,并在我的应用程序中发现了这条特定的消息。这在wp7和wp8设备上都是一致的。即使我禁用了后台代理,这种情况也会发生!除此之外,应用程序的后台代理不会一直运行 所以我的问题是,在windows phone平台上,应用程序不允许一直在后台运行,Wha

Widows Phone Store上Whatsapp的最新更新后,我注意到,现在,一旦他们在我的设备上显示消息的祝酒词,他们就会将消息标记为已送达(通知发件人消息已到达我的设备)

在我让toast通知消失后,我关闭了所有数据连接,打开Whatsapp,并在我的应用程序中发现了这条特定的消息。这在wp7和wp8设备上都是一致的。即使我禁用了后台代理,这种情况也会发生!除此之外,应用程序的后台代理不会一直运行

所以我的问题是,在windows phone平台上,应用程序不允许一直在后台运行,Whatsapp应用程序是如何获得这些消息的?当它不在前台时,是否使用任何特定的api/黑客来获取(应用程序内)这些消息。

浏览此链接

有助于你理解的是


服务器最多为每个URI维护30个通知(无论类型如何)。一旦达到30的限制,发送到服务器的所有新消息都将被丢弃,直到设备重新连接并刷新队列。

您所问的问题有两部分:一部分用于wp7,另一部分用于wp8。我会逐一回答

WindowsPhone7

根据我的研究,我发现whatsapp仍在wp7设备上使用音频流api在后台(即应用程序未运行时)传输消息。Whatsapp被批评使用此API,因为不断使用此API会导致电池电量耗尽,并妨碍用户的音乐体验

Windows Phone 8

一旦whatsapp迁移到wp8,他们就停止使用音频API,转而使用VOIP API。请注意,whatsapp没有将VOIP用于任何目的,但其清单显示了VOIP api的使用情况,在阅读了许多文章后,我得出结论,他们正在使用此api激活后台代理并在后台共享消息

当发送类型为4的原始推送时,VOIP后台代理被激活,您实际上可以执行任何操作,从读取有效负载到建立受特定API使用限制的新套接字连接

我还发现,即使用户禁用了应用程序的bg代理,一些基本的bg代理仍会在音频流API和VOIP API中继续为例如bg代理运行


我希望这能回答您的问题。

在windows phone中有一种称为原始通知的东西,它不同于推送通知,推送通知显示通知,但原始通知会触发后台任务,该任务可以在特定api限制下运行约15秒。(我认为,我不确定持续时间),我认为whatsapp所做的是下载消息并将其保存在设备中维护的本地数据库中。当whatsapp打开时,它将读取本地数据库并与服务器同步


如果我错了,请纠正我。

基本上什么应用程序使用了与skype for windows或任何其他应用程序相同的概念。在移动设备中,通过移动连接从服务器获取数据块可能需要大量开销。因此,一旦您收到toast,消息就会下载到您的设备上。尝试删除您的设备内存,它将被擦除,您将找不到任何内存。从服务器获取数据时与此相反的网页。:)您的意思是,一旦收到祝酒词,它就会保存在设备上。因此,如果收到我的应用程序的祝酒词,那么当用户打开应用程序(没有互联网连接)时,应用程序可以使用特定的祝酒词?如果这就是你的意思,那么你能告诉我吐司是从哪里下载的吗?我如何在我的应用程序中访问它。PS:我不认为任何应用程序都可以访问推送服务发送的toast(除非用户点击它),浏览这个链接,它会让你了解本地存储。他们关心的是应用程序到底使用了什么样的存储。我们无法将其他应用程序的数据用于我们的应用程序。这将破坏安全。显然,用户不会想要这样。仍然是精确的文件结构如果我找到确切的文件位置,我会给它一个搜索。