Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SmsManager发送消息时出现问题_Java_Android_Sms_Smsmanager - Fatal编程技术网

Java 使用SmsManager发送消息时出现问题

Java 使用SmsManager发送消息时出现问题,java,android,sms,smsmanager,Java,Android,Sms,Smsmanager,我是Android的初学者。我试图做的应用程序发送短信。当我尝试在手机上发送信息时,应用程序停止工作。模拟器中会出现一条消息:“发送”。我不明白问题出在哪里。 申请代码: public class MainActivity extends AppCompatActivity { private static final int MY_PERMISSIONS_REQUEST_SEND_SMS =0 ; Button sendBtn; EditText txtphoneNo;

我是Android的初学者。我试图做的应用程序发送短信。当我尝试在手机上发送信息时,应用程序停止工作。模拟器中会出现一条消息:“发送”。我不明白问题出在哪里。 申请代码:

public class MainActivity extends AppCompatActivity {

   private static final int MY_PERMISSIONS_REQUEST_SEND_SMS =0 ;
   Button sendBtn;
   EditText txtphoneNo;
   EditText txtMessage;
   String phoneNo;
   String message;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

       sendBtn = (Button) findViewById(R.id.btnSendSMS);
       txtphoneNo = (EditText) findViewById(R.id.editText);
       txtMessage = (EditText) findViewById(R.id.editText2);

       sendBtn.setOnClickListener(new View.OnClickListener() {
           public void onClick(View view) {
               sendSMSMessage();
           }
       });
   }

   protected void sendSMSMessage() {
       phoneNo = "+48" + txtphoneNo.getText().toString();
       message = txtMessage.getText().toString();

       if (ContextCompat.checkSelfPermission(this,
               Manifest.permission.SEND_SMS)
               != PackageManager.PERMISSION_GRANTED) {
           if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                   Manifest.permission.SEND_SMS)) {
           } else {
               ActivityCompat.requestPermissions(this,
                       new String[]{Manifest.permission.SEND_SMS},
                       MY_PERMISSIONS_REQUEST_SEND_SMS);
           }
       }
   }

   @Override
   public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {
       switch (requestCode) {
           case MY_PERMISSIONS_REQUEST_SEND_SMS: {
               if (grantResults.length > 0
                       && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                   SmsManager smsManager = SmsManager.getDefault();
                   smsManager.sendTextMessage(phoneNo, null, message, null, null);
                   Toast.makeText(getApplicationContext(), "SMS sent.",
                           Toast.LENGTH_LONG).show();
               } else {
                   Toast.makeText(getApplicationContext(),
                           "SMS faild, please try again.", Toast.LENGTH_LONG).show();
                   return;
               }
           }
       }

   }
}
在AndroidManifest.xml中,我写道:

    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
    <uses-permission android:name="android.permission.READ_SMS"/>


提前感谢您

您所说的“应用程序停止工作”是什么意思?您的代码设置为在发送短信息时显示“SMS send”(短信息已发送)。当我按“发送”按钮时,手机上的应用程序将关闭。对不起,我不知道这是什么意思。如果您认为应用程序正在崩溃,请使用Logcat检查与崩溃相关的堆栈跟踪: