我正在尝试使用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)]
答案 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);
}