String SEENT="SMS_SENT";
String DELIVERED="SMS_DELIVERED";
PendingIntent sentPI,deliveredPI;
BroadcastReceiver smsSentReceiver,smsDeliveredReceiver;
final int REQUEST_READ_PHONE_STATE = 1 ;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setContentView(R.layout.activity_main);
sentPI= PendingIntent.getBroadcast(this,0,new Intent(SEENT),0);
deliveredPI= PendingIntent.getBroadcast(this,0,new Intent(DELIVERED),0);
deliveredPI= PendingIntent.getBroadcast(this,0,new Intent(DELIVERED),0);
}
@Override
protected void onResume() {
smsSentReceiver =new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
switch (getResultCode()){
case Activity.RESULT_OK:
Log.d("Debug"," SMS sent");
Toast.makeText(MainActivity.this, "短信发送成功", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Log.d("Debug"," SMS FAILURE");
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Log.d("Debug"," NO _ SERVICE ");
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Log.d("Debug"," NULL _ PDU");
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Log.d("Debug"," RADIO _ OFF");
break;
}
}
};
smsDeliveredReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
switch (getResultCode()){
case Activity.RESULT_OK:
//(供应商已经发送成功,但是对方没有收到)。
Toast.makeText(MainActivity.this, "短信是否被对方收到的状态信息", Toast.LENGTH_SHORT).show();
Log.d("Debug"," SMS Delivere");
break;
case Activity.RESULT_CANCELED:
Log.d("Debug"," SMS not Delivere");
break;
}
}
};
registerReceiver(smsSentReceiver,new IntentFilter(SEENT));
registerReceiver(smsDeliveredReceiver,new IntentFilter(DELIVERED));
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(smsDeliveredReceiver);
unregisterReceiver(smsSentReceiver);
}
public void onSend_(View view){
if(ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.SEND_SMS} , MY_PERMISSION_REQUEST_SEND_SMS);
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_PHONE_STATE}, MY_PERMISSION_REQUEST_SEND_SMS);
}else{
final SmsManager sms=SmsManager.getDefault();
//第一個參數電話號碼,第三個參數簡訊內容
//第一個參數電話號碼,第三個參數簡訊內容
sms.sendTextMessage(number",null,message,sentPI,deliveredPI);
}
}
沒有留言:
張貼留言