안녕하세요! 통화 로그, 수신 SMS 및 발신 SMS를 읽는 응용 프로그램이 있습니다.이전 활동이 자동으로 시작됩니다.
응용 프로그램을 처음 시작하면 통화 로그를 표시 한 다음 수신 및 발신 SMS를 수신합니다. 나는 Main Activity, IncomingSms.Java, outgoingSms.java의 세 클래스를 가지고있다.
주 활동이 정상적으로 시작되고 모든 항목이 올바르게 표시되지만 들어오고 나가는 SMS 기능은 실행되지 않습니다. 내 수신 및 발신 SMS 클래스는 100 % 정확하며 새 프로젝트를 만들고 실행하면 잘 작동하지만 함께 작동하지는 않습니다.
내가 원한다면이 모든 프로세스를 동시에 트리거하는 것이 나의 코드이다. 당신이 IncomingSms
에서 MainActivity
을 알릴 수 있습니다 .Also 당신은 OutgoingSms.java
및 MainActivity.java
을 병합 할 수 있습니다
public class IncomingSms extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
final Bundle bundle = intent.getExtras();
final SmsManager sms = SmsManager.getDefault();
// REST OF CODE HERE
}
}
OutgoingSms.java
public class OutgoingSms extends Activity {
final SmsManager sms = SmsManager.getDefault();
ContentResolver contentResolver;
ContentObserver smsContentObserver;
@Override
public void onResume() {
super.onResume();
smsContentObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
Uri smsURI = Uri.parse("content://sms/sent");
Cursor c = getContentResolver().query(smsURI, new String[] {
"address", "date", "body", "type"
}, null, null, null);
String[] columns = new String[] {
"address", "date", "body", "type"
};
c.moveToNext();
Rest of Code [email protected] Override
public boolean deliverSelfNotifications() {
return true;
}
};
contentResolver.registerContentObserver(Uri.parse("content://sms"), true, smsContentObserver);
}
@Override
public void onDestroy() {
super.onDestroy();
contentResolver.unregisterContentObserver(smsContentObserver);
}
}