android手机中的sendTextMessage

android手机中的sendTextMessage,android,sms,Android,Sms,这是发送短信的简单代码 47: SmsManager sms = SmsManager.getDefault(); 48: sms.sendTextMessage("12345678901", null, "hello!", null, null); 但是我不能运行这个代码。 此代码在android版本2.1中运行成功,但我的手机三星galaxy II出现NullPointException错误。告诉我那个问题。以下是AndroidManifest.xml代码和错误日志 <uses-pe

这是发送短信的简单代码

47: SmsManager sms = SmsManager.getDefault();
48: sms.sendTextMessage("12345678901", null, "hello!", null, null);
但是我不能运行这个代码。 此代码在android版本2.1中运行成功,但我的手机三星galaxy II出现NullPointException错误。告诉我那个问题。以下是AndroidManifest.xml代码和错误日志

<uses-permission android:name="android.permission.SEND_SMS"/>

FATAL EXCEPTION: main
java.lang.RuntimeException:Unable to start activity ComponentInfo {ric.FPSProject.FamilyPositionSearch/ric.FPSProject.SinglePos.SinglePosMap}: java.lang.NullPointerException
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2668)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2684)
  at android.app.ActivityThread.access$2300(ActivityThread.java:126)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2038)
  at android.os.Handler.dispatchMessage(Handler.java:99)
  at android.os.Looper.loop(Looper.java:123)
  at android.app.ActivityThread.main(ActivityThread.java:4632)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:521)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
  at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
  at android.os.Parcel.readException(Parcel.java:1253)
  at android.os.Parcel.readException(Parcel.java:1235)
  at com.android.internal.telephony.ISms$Stub$Proxy.sendText(ISms.java:561)
  at android.telephony.SmsManager.sendTextMessage(SmsManager.java:109)
  **at ric.FPSProject.SinglePos.SinglePosMap.sendSMS(SinglePosMap.java:48)**
  at ric.FPSProject.SinglePos.SinglePosMap.initPersonData(SinglePosMap.java:273)
  at ric.FPSProject.SinglePos.SinglePosMap.onCreate(SinglePosMap.java:134)
  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2632)
  ... 11 more

在您的第48行中给出待定意图,如下所示

String sent = "android.telephony.SmsManager.STATUS_ON_ICC_SENT";
PendingIntent piSent = PendingIntent.getBroadcast(smsActivity.this, 0,new Intent(sent), 0);

sms.sendTextMessage("12345678901", null, "hello!", piSent, null);

我确信它是有效的:

在您的第48行中给出待定的意图,如下所示

String sent = "android.telephony.SmsManager.STATUS_ON_ICC_SENT";
PendingIntent piSent = PendingIntent.getBroadcast(smsActivity.this, 0,new Intent(sent), 0);

sms.sendTextMessage("12345678901", null, "hello!", piSent, null);

我确信它能工作:

当您的消息长度超过正常文本msg lengthi.e 160个字符时,也会出现此问题。您需要将消息分成多个部分并发送。。。使用此代码可能会对您有所帮助

public static void sendSms(Activity curActivity, String phoneNumber, String msg) {
 SmsManager smsManager = SmsManager.getDefault(); 

 ArrayList<String> msgStringArray = smsManager.divideMessage(msg);      

 smsManager.sendMultipartTextMessage(phoneNumber, null, msgStringArray, null, null);
}

当您的消息长度超过正常文本msg lengthi.e 160个字符时,也会出现此问题。您需要将消息分成多个部分并发送。。。使用此代码可能会对您有所帮助

public static void sendSms(Activity curActivity, String phoneNumber, String msg) {
 SmsManager smsManager = SmsManager.getDefault(); 

 ArrayList<String> msgStringArray = smsManager.divideMessage(msg);      

 smsManager.sendMultipartTextMessage(phoneNumber, null, msgStringArray, null, null);
}

我在短信中使用特殊字符时遇到了这个问题。更改为普通英文字符对我来说很有效。

在短信中使用特殊字符时,我遇到了这个问题。更改为普通英文字符对我很有效。

空异常在SMS长度中,您可以使用

try {}catch(Exception ex) {}
在您的代码中,如果出现空异常,请尝试使用以下方式发送分割短信:

ArrayList<String> parts = sms.divideMessage(message);
sms.sendMultipartTextMessage(telephone, null, parts, null, null);

空异常在SMS长度中,您可以使用

try {}catch(Exception ex) {}
在您的代码中,如果出现空异常,请尝试使用以下方式发送分割短信:

ArrayList<String> parts = sms.divideMessage(message);
sms.sendMultipartTextMessage(telephone, null, parts, null, null);

我尝试了这个代码,它对我有效,尽管我确实把电话号码换成了一个有效的电话号码。请从logcat输出中粘贴更多行,这可能有助于定位问题。好的,我会的,请帮助我!我尝试了这个代码,它对我有效,尽管我确实把电话号码换成了一个有效的电话号码。请从logcat输出中粘贴更多行,这可能有助于定位问题。好的,我会的,请帮助我!正常发送和捕获与总是分割和发送之间有什么优势吗?正常发送和捕获与总是分割和发送之间有什么优势吗?