SMS 알림을 개발하고 싶습니다. 그 일은 SMS가 활동의 텍스트 박스를 수신하면 "SMS 수신"텍스트로 변경됩니다. SMS가 성공적으로 전송되고 있지만 BroadCastReceiver가 작동하지 않는 경우 도움을 요청하십시오.android BroadCastReceiver가 활동 내에서 작동하지 않습니다.
내 코드 :
package com.shahid.todolist;
import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
* SmsManager smsManager = SmsManager.getDefault();
*
* String sendTo = "03129912287"; String myMessage =
* "Android supports programmatic SMS messaging!";
* smsManager.sendTextMessage(sendTo, null, myMessage, null, null);
*/
final EditText phoneNo = (EditText) findViewById(R.id.phoneNo);
final TextView display = (TextView) findViewById(R.id.txtDisplay);
Button buttonOne = (Button) findViewById(R.id.button1);
buttonOne.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
SmsManager smsManager = SmsManager.getDefault();
display.setText("Sending SMS...");
String sendTo = phoneNo.getText().toString();
String myMessage = "This is Shahid from Android";
smsManager.sendTextMessage(sendTo, null, myMessage, null, null);
}
});
// ---
final BroadcastReceiver receiver = new BroadcastReceiver() {
private static final String queryString = "@echo ";
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)) {
display.setText("SMS Received");
}
}
};
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
매니페스트에 수신자를 등록해야합니다. – Akram
브로드 캐스트 리시버를 동적 및 정적 (androidmanifest.xml)에 등록하고 SMS 의도를위한 인 텐트 필터를 설정해야합니다. – Yahor10
화나게하다? –