Невозможно отправить SMS на номер, введенный с помощью TelephonyManager - PullRequest
0 голосов
/ 25 октября 2019

Мое приложение должно отправить смс на номер, который был введен в текстовом поле. SMS содержит данные из базы данных

        TelephonyManager tMgr = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_NUMBERS) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            //    ActivityCompat#requestPermissions
            // here to request the missing permissions, and then overriding
            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
            //                                          int[] grantResults)
            // to handle the case where the user grants the permission. See the documentation
            // for ActivityCompat#requestPermissions for more details.
            return;
        }
        String mPhoneNumber = tMgr.getLine1Number();

Это другой код, который я использовал:

 btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String phonenumber = etphonenumber.getText().toString();

                try{
                    //android.telephony.SmsManager smgr = SmsManager.getDefault();
                    //smgr.sendTextMessage(etphonenumber.getText().toString(),null,etphonenumber.getText().toString(),null,null);
                    String msg = "This is the fucking message";
                    String phoneNum = "";

                    SmsManager.getDefault().sendTextMessage(phoneNum, null, msg ,null,null);
                    Toast.makeText(Login.this, "SMS Sent", Toast.LENGTH_SHORT).show();

                } catch (Exception e){
                    Toast.makeText(Login.this, "SMS failed to send", Toast.LENGTH_SHORT).show();
                    e.printStackTrace();
                    Log.e("Error Message", "There is an error sending the message.");
                }

                initlogin(phonenumber);
            }
        });

Ожидается вывод:

Число, котороезарегистрированные в базе данных будут служить авторизацией при входе в систему. Когда зарегистрированный номер будет распознан, на номер будет отправлено смс с некоторыми подробностями из базы данных, и он войдет в приложение.

...