长时间不活动的应用程序后,自动短信不起作用

问题描述:

在这里,我已经使应用程序听每个短信接收,然后发送短信作为条件定义。这款应用程序在有限的时间内完美无缺地运行但经过长时间不活动的应用程序(即12小时),它不会发送任何SMS收到任何SMS。在这种不活动的过程中,用户正在使用他的手机拨打电话,但不对应用程序进行任何操作。如果我看到应用信息状态,则表明该应用正在运行。由于它在开始时工作正常,但后来只是没有响应,因此它看起来像代码没有任何问题。请帮我理解这个问题。任何专家建议都非常受欢迎。长时间不活动的应用程序后,自动短信不起作用

public class IncommingSMS2 extends BroadcastReceiver { 

    public static String phoneNumber; 
    Timer timer = new Timer(); 

    public void onReceive(final Context context, Intent intent) { 
     Bundle bundle = intent.getExtras(); 
     try { 
      if (bundle != null) { 
       Object[] pdusObj = (Object[]) bundle.get("pdus"); 
       for (int i = 0; i < pdusObj.length; i++) { 
        SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]); 
        phoneNumber = currentMessage.getDisplayOriginatingAddress(); 
        String message = currentMessage.getDisplayMessageBody(); 
        Log.i("SmsReceiver", "senderNum: " + phoneNumber + "; message: "); 

        if (Objects.equals(message, "Where")) { 
         SmsManager smsManager = SmsManager.getDefault(); 
               smsManager.sendTextMessage(phoneNumber, null, "test", null, null); 

        } 

       } // bundle is null 
      } 

     } catch (Exception e) { 
      Log.e("SmsReceiver", "Exception smsReceiver" + e); 
     } 
    } 
    } 

这里我有清单。

<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permiss‌​ion>              
    <uses-permission android:name="android.permission.READ_SMS" /> 
    <uses-permission android:name="android.permission.SEND_SMS"></uses-permission‌​> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
    <receiver android:name=".IncommingSMS2"> 
    <intent-filter android:priority="999"> 
    <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
    </intent-filter> 
    </receiver> 
+1

设置为高优先级清单文件 – Keerthivasan

+0

如何你是否在清单中声明了它? –

+0

亲爱的乔迪,在这里我有清单。 uses-permission> uses-permission> 意图过滤器> simon

给像在Android清单文件

<uses-permission android:name="android.permission.RECEIVE_SMS"/> 
    <uses-permission android:name="android.permission.READ_SMS" /> 
    <uses-permission android:name="android.permission.SEND_SMS"/> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
    <receiver android:name=".IncommingSMS2" android:exported="true"> 
      <intent-filter android:priority="999"> 
       <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
      </intent-filter> 
    </receiver> 

因此,它具有高优先级,那么它会经过长时间工作在应用程序的活动

+0

@Keerthisvasan这已经实现了高优先级,不包括代码android:exported =“true”。我将添加此行并让您知道谢谢。 – simon

+0

@simon得到OP啊 – Keerthivasan