簡體   English   中英

Android Studio 短信發送

[英]Android Studio sms send

我在發送短信時遇到問題。

所以我做了一個和這里完全一樣的功能: https : //www.tutorialspoint.com/android/android_sending_sms.htm

它運行良好,但在發送 3 條短信后它停止工作。 甚至沒有 Toasts 它不起作用。 其他應用程序也會發生同樣的情況,這也有效。

已啟用從該應用程序發送短信的權限。

我來自主電話應用程序的短信工作正常。

似乎它剛剛停止工作,為什么以及如何解決它?

最相關的代碼:

   protected void sendSMSMessage() {
      phoneNo = 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;
            }
         }
      }
   }

這就是我認為您的代碼的問題所在。 一旦權限被禁用,它會提示允許這個應用程序發送短信權限對話框,當用戶響應允許時,短信發送啟動。 現在的問題是,當應用程序已經被允許發送短信時,導致發送短信的權限對話框不再被調用,因此不再調用 onPermissionResult 方法,這意味着不再啟動發送短信。 這是基於您提供的當前代碼片段。 希望這能解決問題。

編輯:你應該把一個else語句您

if (ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) { }

代碼並在那里調用發送短信,因為該應用程序已被授予這樣做的權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM