当启用 Go SMS 中的这个新功能时,Shady 将不会发送通知或保存消息,最终对即将到来的 SMS 广播没有任何响应。
Go SMS 必须以某种方式注销了我的应用程序的广播接收器,因为无法中止即将到来的 SMS 广播。我的意图过滤器设置为 android:priority="0"。
有什么想法吗?
GoSMS的优先级被设置为2147483647,但这并不是“最大”的(它只是最大的整数)- 这个值太高了。Android文档中SYSTEM_HIGH_PRIORITY的值是1000(http://developer.android.com/reference/android/content/IntentFilter.html#SYSTEM_HIGH_PRIORITY),应用程序的优先级应该在此之下 - 它不是系统应用。
这将导致不可预测的行为。(GoSMS并不总是会关闭其他应用程序的通知 - abortBroadcast仅在它们首次获得时起作用,通常基于安装顺序,但并非总是如此。)系统级应用程序将被执行,然后Android将尝试解决非系统应用程序。如果您查看源代码,执行顺序是基于优先级水平,但选择应用程序顺序的调用对于优先级水平相同的应用程序或999以上的应用程序是不一致的。它可能是按照安装顺序排列的,但系统更改可能会导致其他执行顺序(我测试过许多次)。
这真的应该由GoSMS(以及许多其他有错误的应用程序)进行修复。仅因为“优先级”是一个整数,并不意味着最大整数的值就代表最高优先级水平。(就像web URL是字符串一样,但并非所有字符串值都是有效的。)另外,GoSMS应该知道其他应用程序可能希望处理对用户不可见的短信。如果它们捕获并将其显示给用户,则毫无意义。
我想我们已经解决了这个问题,而且它也起作用了 :) 我们通过代码启动广播接收器。
IntentFilter filter = new IntentFilter();
filter.addAction("android.provider.Telephony.SMS_RECEIVED");
filter.setPriority(2147483647);
receiver = new SmsAnalizer();
ac.registerReceiver(receiver, filter);
这个方案行得通,我们完成了工作。
下载apktool http://code.google.com/p/android-apktool/
下载由Dave Da illest 1创建的Auto-sign http://www.mediafire.com/?j9n7o6ub9urkfwy
在文件夹中提取apktool和NICEBUTWRONGLYWRITTEN.APK 运行cmd 在cmd中 apktool d -d NICEBUTWRONGLYWRITTEN.APK modif1 等待 进入modif1目录 查找第一个可见的XML文件,在其中查找值V=2147483647 (搜索数字2147483647) 将其替换为1 关闭文件并保存。 运行 在cmd窗口中 apktool b -d modif1/ newsmsapp.apk 等待直到构建完成
将已构建的newsmsapp.apk复制到signapk目录中 运行cmd cd到signapk目录 输入: sign newsmsapp.apk
在您的手机上安装newsmsapp.apk
完成。
Go SMS Pro的优先级最大为2147483647(2^31-1)。您也可以设置此值。如果优先级相同,Android操作系统将为“较旧”的应用程序提供服务,即您首先安装的应用程序。我从我的经验中说这句话,我没有谷歌对此事的发言权。