我有一个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" );
}
}
答案 0 :(得分:1)
应用程序在第一次启动之前不会接收广播。这是Android安全性。他们曾经能够,但谷歌最近稍微改变了这种行为。
答案 1 :(得分:0)
您可以创建一个服务来呼叫广播接收器。此外,在主活动中的onCreate方法中调用此服务,尽管您的应用程序被终止,但仍应保持活动状态。 Regrads