여기에 모든 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);
}
}
}
여기에 나와 있습니다. 안드로이드 매니페스트에 따라서
<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
방법에 높은 우선 순위를 설정 당신은 그것을 명단에서 선언 했습니까? –
친애하는 조디, 여기에 내가 명시했다. <사용 권한 android : name = "android.permission.READ_SMS"/> <사용 권한 android : 이름 = "android.permission.RECEIVE_SMS" InbuySMS2 "> <인보이스 앤드 로이드 : 이름 ="IncommingSMS2 "> <인벤토리 필터 android : 우선 순위 = "999"> <액션 안드로이드 : 이름 = "android.provider.Telephony.SMS_RECEIVED"/> 의도 필터> –
simon