ここでは、すべてのSMSを受信し、条件定義に従ってSMSを送信するアプリを作った。このアプリは限られた時間で問題なく完全に動作します。しかし、アプリの長時間使用していない(つまり12時間)と、SMS受信者は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);
}
}
}
ここに私はマニフェストを持っています。 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>
ファイル
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<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>
は、マニフェストファイル – Keerthivasan
どのように高い優先度を設定しますあなたはマニフェストでそれを宣言しましたか? –
親愛なるジョーディ、ここに私はマニフェストを持っています。 "use-permission android:name =" android.permission.READ_SMS "/>使用許諾> InbuildSMS2 "> use-permission><インテントフィルタandroid:priority> = "999"> <アクションアンドロイド:名= "android.provider.Telephony.SMS_RECEIVED" /> インテントフィルタ> –
simon