我正在尝试从Server API数据库中以SMS形式发送数据。 数据库中的电话号码用于登录应用程序。登录后,SMS会自动发送到电话号码。
登录类别:
String phoneNum = et_mobile.getText().toString();
int mobile = Integer.parseInt(phoneNum.trim());
SmsManager smsManager = SmsManager.getSmsManagerForSubscriptionId(mobile);
String spamMessage = "Srno: " + resObj.getSrNo() +
"Date: " + resObj.getDate() +
"In: " + resObj.getTimeIn() +
"Out: " + resObj.getTimeOut() +
"JO#: " + resObj.getJoNo() +
"CoPer: " + resObj.getContactPerson() +
"BR: " + resObj.getDesignation() +
"CNum: " + resObj.getContactNo();
ArrayList<String> sms;
sms = smsManager.divideMessage(spamMessage);
smsManager.sendMultipartTextMessage(phoneNum, null,sms,null, null);
我已经在清单中使用了这些权限:
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
当我登录时,我的日志显示如下:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.ras, PID: 18982
java.lang.NumberFormatException: For input string: "09xxxxxxxxx"
我没有收到任何短信。
答案 0 :(得分:-1)
您将获得here所描述的NumberFormatException
。就像
抛出该错误以指示应用程序已尝试将字符串转换为数字类型之一,但是该字符串的格式不正确。
您的字符串为09xxxxxxxxx
; xxxxxxxxx
无法解析为Integer
,因此无法解析。
您可以在Java编译器或online compiler上尝试以下简单代码,以了解我在说什么。
public class HelloWorld{
public static void main(String []args){
int mobile = Integer.parseInt("09*******");
}
}
答案 1 :(得分:-1)
尝试在mobile
中使用smsManager.sendMultipartTextMessage(**String.valueOf(mobile)**, null,sms,null, null);
变量
因为从View使用直接字符串可以有空格。