Flo*_*low 25 sms android hangout
我刚刚收到了Hangouts 2.0的更新,已安装并启用了SMS→ Turn on SMS.现在我的应用程序在Android 4.3下运行,无法再接收短信,即我的BroadcastReceiver for SMS_RECEIVED不再被调用.:-(
只要我Turn on SMS在环聊2.0中禁用,我的应用就可以再次接收SMS_RECEIVED意图.
广播接收器在此类清单中注册
AndroidManifest.xml中
…
<receiver android:name=".SMSReceiver" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
…
Run Code Online (Sandbox Code Playgroud)
SMSReceiver.java
public class SMSReceiver extends BroadcastReceiver {
private static final Log LOG = Log.getLog();
@Override
public void onReceive(Context context, Intent intent) {
LOG.d("onReceive");
…
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试将接收器的优先级更改为INT_MAX或999,这是intent-filter文档中可能的最高优先级,但没有成功.我知道SMS_RECEIVED意图是有序发送的,高优先级的应用程序有能力中止广播.1但是,Hangouts 2.0似乎不太可能SMS_RECEIVED以高优先级注册接收器并调用abortBroadcast(),因此阻止任何其他应用程序接收意图.
更令我困惑的是,即使将Hangouts 2.0作为默认短信应用,我的Pebble仍然可以接收短信.我想知道Pebble的不同之处是什么?我刚刚注意到,我的Pebble上的传入短信通知不再是Pebble应用程序收到的新短信通知,而是由收到传入短信的环聊引起的"新环聊消息"通知.所以Pebble应用程序也无法接收传入的短信SMS_RECEIVED.
在旁注而且与此问题没有真正关联,因为我仍然在Android 4.3(但我的应用程序针对SDK级别19,Android 4.4以防万一)Google的Android开发者博客文章关于Kitkat中的新SMS API,说使用SMS_RECEIVED的应用程序没有任何改变,也不要尝试将SMS写入SMS提供程序.
1我一直认为SMS_RECEIVED广播是可以中止的.但是Android 4.4 API网站说了一些不同的东西:"...当一个新的短信到来时,通过收听SMS_RECEIVED_ACTION广播,这是一个不可中止的广播......"
Flo*_*low 12
固定它.
第一个问题是,正如你在我的问题的修订版2中看到的那样,我把priority属性放在action元素中,当它实际属于intent-filter元素时.所以优先考虑不起作用.
虽然仍然针对API 19,但我在环聊短信启用和不同优先级方面做了一些经验.
SMS_RECEIVED意图SMS_RECEIVED意图SMS_RECEIVED意图因此,您似乎需要具有最低优先级值才能获得启用环聊短信的意图.我没有费心将最低值分成两半.;)我将使用999,因为我没有看到任何理由降低,因为我的应用程序只是对收到的短信进行了一些快速检查,并没有进一步处理它.但它确实应该有所作为,因为广播是不可中止的.
1 最大值
| 归档时间: |
|
| 查看次数: |
7478 次 |
| 最近记录: |