Kitkat行为:SMS广播接收器在全新安装后无法正常工作且未启动应用程序

时间:2014-04-03 10:37:10

标签: sms android-broadcast

我有一个Android应用程序,可以收听短信。这是清单:

<receiver android:name=".SMSListner" >
 <intent-filter>
   <action android:name="android.provider.Telephony.SMS_RECEIVED" />
 </intent-filter>
</receiver>

如果安装并打开了应用程序(对于所有Android版本),广播接收器工作正常。

  • 如果在kitkat版本以下,如果app已安装且未打开,仍然会在OnRecieve方法中收到短信

  • 如果是KitKat,它会在应用程序启动一次之前无法正常工作。

当我发送短信时,非Kitkat设备(GB版)收到短信但Kitkat版本没有。

OnRecieve代码是:

public void onReceive( Context context, Intent intent )
{

    String action = intent.getAction();
    Log.v( "KK TEST APP", "===============SMS Received===============" );
    if ( action.equals( ACTION_SMS_RECEIVED ) )
    {
        Log.v( "KK TEST APP", "action.equals( ACTION_SMS_RECEIVED )" );
    }
    else
    {
        Log.v( "KK TEST APP", "other message" );
    }

}

2 个答案:

答案 0 :(得分:1)

应用程序在第一次启动之前不会接收广播。这是Android安全性。他们曾经能够,但谷歌最近稍微改变了这种行为。

答案 1 :(得分:0)

您可以创建一个服务来呼叫广播接收器。此外,在主活动中的onCreate方法中调用此服务,尽管您的应用程序被终止,但仍应保持活动状态。 Regrads

相关问题