无法发送短信

时间:2017-06-20 11:28:27

标签: java android sms smsmanager

我正在尝试使用SmsManager在android studio中发送短信 我尝试了很多东西,但它不起作用。

这是我现在正在使用的代码:
问题是它总是去“捕获”......

public void sendSmsFunction(){
        try {
            SmsManager smsManager = SmsManager.getDefault();
            smsManager.sendTextMessage("972111111111", null, "This is a test", null, null);
            Toast.makeText(getActivity(), "SMS Sent!",
                    Toast.LENGTH_LONG).show();
        } catch (Exception e) {
            Toast.makeText(getActivity(),
                    "SMS faild, please try again later!",
                    Toast.LENGTH_LONG).show();
            e.printStackTrace();
        }


    }

这是CRASH-REPORT:

E/sendSmsFunction: CRASH StackTrace: [android.os.Parcel.readException(Parcel.java:1683), android.os.Parcel.readException(Parcel.java:1636), com.android.internal.telephony.ISms$Stub$Proxy.sendTextForSubscriber(ISms.java:842), android.telephony.SmsManager.sendTextMessageInternal(SmsManager.java:311), android.telephony.SmsManager.sendTextMessage(SmsManager.java:294), com.example.ridewithme.SearchTremp.sendSmsFunction(SearchTremp.java:123), com.example.ridewithme.SearchTremp.searchInDB(SearchTremp.java:97), com.example.ridewithme.SearchTremp$2.onDataChange(SearchTremp.java:109), com.google.android.gms.internal.zzbmz.zza(Unknown Source), com.google.android.gms.internal.zzbnz.zzYj(Unknown Source), com.google.android.gms.internal.zzboc$1.run(Unknown Source), android.os.Handler.handleCallback(Handler.java:754), android.os.Handler.dispatchMessage(Handler.java:95), android.os.Looper.loop(Looper.java:160), android.app.ActivityThread.main(ActivityThread.java:6275), java.lang.reflect.Method.invoke(Native Method), com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:874), com.android.internal.os.ZygoteInit.main(ZygoteInit.java:764)]

1 个答案:

答案 0 :(得分:0)

如果您缺少权限,请添加如下。

 private static final int PERMISSION_REQUEST_CODE = 1;

 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {

    if (checkSelfPermission(Manifest.permission.SEND_SMS)
            == PackageManager.PERMISSION_DENIED) {

        Log.d("permission", "permission denied to SEND_SMS - requesting it");
        String[] permissions = {Manifest.permission.SEND_SMS};

        requestPermissions(permissions, PERMISSION_REQUEST_CODE);

    }
}

用于清单文件中的以下M版本添加权限。

<uses-permission android:name="android.permission.SEND_SMS"/>
发送短信的

使用如下代码:

private void sendSMS(String phoneNumber, String message)
{
   SmsManager sms = SmsManager.getDefault();
   sms.sendTextMessage(phoneNumber, null, message, null, null);
}