SMS 수신 전화 번호는 123456
입니다. 인 텐트를 사용하여 서비스에서 들어오는 전화 번호의 SMS 메시지를 열고 싶습니다. 나는 두 가지 방법을 시도하지만, 그들은 만족 결과를읽기 모드에서 SMS를 읽을 수 없습니까? Android 5.0?
첫 번째 방법 제공 :
Intent smsIntent = new Intent(Intent.ACTION_MAIN);
smsIntent.addCategory(Intent.CATEGORY_DEFAULT);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(smsIntent);
방법 만 SMS 목록을 열립니다. 우리는 목록에있는 들어오는 전화를 봐야하고 들어오는 SMS 전화의 내용을 열려면 더 많은 단계가 필요합니다. 나는 그 단계를 무시하고 싶다. 즉, 들어오는 SMS 전화 번호의 내용을 직접 이동한다는 의미입니다.
두 번째 방법 :
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("address", SMSphoneNumber);
smsIntent.putExtra("sms_body",SMSBody);
smsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(smsIntent);
이 방법은 수신 SMS 전화 번호의 세부 사항을 읽을 수 있지만 전송 모드에 있습니다. 나는 독서 모드에서 SMS를 읽고 싶다.
어떻게 Android L에서 할 수 있습니까? 감사합니다 모두
질문은 How to open SMS intent to read (not send) message?와 관련됩니다. 다른 하나는 두 가지 경우에 대한 소스 코드를 제공합니다. 하나는 단계를 더 필요로하는 읽기 모드 (첫 번째)이고 다른 하나는 단계를 보내는 것입니다.
업데이트 :이 방법 당신은 당신이받은 메시지의 스레드 ID를 필요로 할 기본 응용 프로그램에서 메시지를 열려면 내가 SMS 수신 전화 번호
public class SMSReceiver extends BroadcastReceiver {
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED)) {
Bundle extras = intent.getExtras();
SmsMessage[] smgs = null;
String infoSender = "";
String infoSMS = "";
if (extras != null) {
// Retrieve the sms message received
Object[] pdus = (Object[]) extras.get("pdus");
smgs = new SmsMessage[pdus.length];
for (int i = 0; i < smgs.length; i++) {
smgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
infoSender += smgs[i].getOriginatingAddress();
if (smgs[i].getMessageBody()!=null)
infoSMS += smgs[i].getMessageBody().toString();
else
infoSMS += ".";
}
Toast.makeText(context, "Phone in SMSReceiver is -" + infoSender + "Body is" + infoSMS, Toast.LENGTH_SHORT).show();
}
}
}
}
도움을 희망 : 첫째, 우리는 다음과 같이 우리가 읽기 모드에서 SMS의 내용을 표시 할 수 있습니다, 코드
thread_id
에서를 사용하여 SMS의
thread_id
를 얻을 수 있습니다 귀하의 질문에 분명하지 않습니다. 번호와 메시지 본문을 가져 와서 특정 번호로 필터링하고 싶습니까? –나는 이미 BroadcastReceiver의 수와 본문을 가지고 있습니다. 수신 전화 번호의 SMS를 읽기 모드로 열려고합니다. – Jame
[SMS 의도 (읽지 않음) 메시지를 여는 방법?] (http://stackoverflow.com/questions/39678042/how-to-open-sms-intent-to-read-not-send- 메시지) –