Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/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
Java Android-以编程方式禁用文本消息通知_Java_Android - Fatal编程技术网

Java Android-以编程方式禁用文本消息通知

Java Android-以编程方式禁用文本消息通知,java,android,Java,Android,我正在开发一个处理文本消息的应用程序。这是一个个人应用程序,我不打算发布它,但它基本上允许我通过互联网在众多设备之间共享我的短信(和电话号码)。作为第一个应用程序,这也是一个有趣的学习项目,我做了很多 然而,令人恼火的是,当我的设备收到信息时,会弹出文本消息。我喜欢在使用设备时使用它,当我不打算使用设备时,我总是可以进入选项并禁用弹出窗口,但我是一个非常非常健忘的人,打开它不会总是发生。那我就永远不会回复留言了 基本上,我希望以编程方式中断(甚至不通知)文本消息的默认消息传递应用程序,但是我仍然

我正在开发一个处理文本消息的应用程序。这是一个个人应用程序,我不打算发布它,但它基本上允许我通过互联网在众多设备之间共享我的短信(和电话号码)。作为第一个应用程序,这也是一个有趣的学习项目,我做了很多

然而,令人恼火的是,当我的设备收到信息时,会弹出文本消息。我喜欢在使用设备时使用它,当我不打算使用设备时,我总是可以进入选项并禁用弹出窗口,但我是一个非常非常健忘的人,打开它不会总是发生。那我就永远不会回复留言了

基本上,我希望以编程方式中断(甚至不通知)文本消息的默认消息传递应用程序,但是我仍然希望它记录在我的消息传递历史记录中。因此,信息不能被“丢弃”。当然,这只应该在我的应用程序服务运行时发生

我已经在安卓API上搜索了很长一段时间,但我似乎不明白这一点,有可能吗?如果有,你能把我链接到API中合适的位置开始吗

基本上,我想以编程方式中断(甚至不通知)文本消息的默认消息传递应用程序

这是不可能的

假设“中断”的意思是阻止默认SMS应用程序发出通知,那么您不能使用默认应用程序执行此操作,也不能使用您无法控制的任何其他应用程序执行此操作

此外,由于默认短信应用程序响应
SMS\u DELIVER\u操作
广播,并且它是唯一接收此广播的应用程序,因此无法“不…通知”默认应用程序传入消息。即使有可能,你的应用程序也没有机会中止广播

(在KitKat之前的版本中,通常可以为
SMS\u RECEIVED\u ACTION
广播注册具有高优先级的接收器,然后在本机SMS应用程序收到广播之前中止广播。这就是rajan ks的答案。)

…但是,我仍然希望它记录在我的消息历史记录中


默认SMS应用程序负责将所有传入消息写入提供商。即使您能够阻止默认应用程序接收传入消息,您的应用程序也必须自己编写消息。这也不太可能,因为默认应用程序是唯一对提供商具有标准写入权限的应用程序。

老实说,这相当令人沮丧。谢谢你的洞察力。我想我不得不时不时地处理掉400个弹出窗口。是的,KitKat中引入的变化使得如果你的应用程序不是默认的,用短信做某些事情很困难/不可能。您可以随时编写自己的完整SMS客户端,但这是一项相当大的任务。或者,你可以找到一个开源的短信应用程序,并根据自己的需要进行调整。(这可能是我在你的情况下会做的。)最近开源。编写SMS应用程序并没有那么复杂,我已经有了一个非常好的界面,它来自我使用WebView的一个旧应用程序。我就这么做!谢谢你的主意。如果短信来自一个特定的号码,我们可以在半秒钟内禁用通知声音吗?如果可能的话,请在此回答