我正在尝试进行消息传递活动,其中,当用户发送短信时,短信会发送到特定的电话号码。此刻,每次单击发送按钮并且没有消息发送时,应用程序都会崩溃。请帮助
这是我的活动java类的代码:
public class Main2Activity extends AppCompatActivity {
private static final int PERMISSION_REQUEST_CODE = 1;
private Button sendSMS;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
final EditText phoneNumber = (EditText) findViewById(R.id.editTextarea1);
if (Build.VERSION.SDK_INT >= 23) {
if (checkPermission()) {
Log.e("permission", "Permission already granted.");
} else {
requestPermission();
}
}
final EditText smsText = (EditText) findViewById(R.id.message);
sendSMS = (Button) findViewById(R.id.sendSMS);
sendSMS.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String sms = smsText.getText().toString();
String phoneNum = phoneNumber.getText().toString();
phoneNum="+260893120021";
if(!TextUtils.isEmpty(sms) && !TextUtils.isEmpty(phoneNum)) {
if(checkPermission()) {
//Get the default SmsManager//
SmsManager smsManager = SmsManager.getDefault();
//Send the SMS//
smsManager.sendTextMessage(phoneNum, null, sms, null, null);
}else {
Toast.makeText(Main2Activity.this, "Permission denied", Toast.LENGTH_SHORT).show();
}
}
}
});
}
private boolean checkPermission() {
int result = ContextCompat.checkSelfPermission(Main2Activity.this, Manifest.permission.SEND_SMS);
if (result == PackageManager.PERMISSION_GRANTED) {
return true;
} else {
return false;
}
}
private void requestPermission() {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, PERMISSION_REQUEST_CODE);
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case PERMISSION_REQUEST_CODE:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(Main2Activity.this,
"Permission accepted", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(Main2Activity.this,
"Permission denied", Toast.LENGTH_LONG).show();
Button sendSMS = (Button) findViewById(R.id.sendSMS);
sendSMS.setEnabled(false);
}
break;
}
}
}