sendTextMessage В телефоне Android

1

Это простой код для отправки SMS.

47: SmsManager sms = SmsManager.getDefault();
48: sms.sendTextMessage("12345678901", null, "hello!", null, null);

Но я не могу запустить этот код. Этот код успешно работает в версии Android версии 2.1, но мой телефон Samsung 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
  • 0
    Я попробовал код, и он работал для меня (хотя я заменил номер телефона на действительный номер телефона). Пожалуйста, вставьте больше строк из вывода logcat, что может помочь в определении проблемы.
  • 0
    Хорошо, я буду, и, пожалуйста, помогите мне!
Теги:
sms

4 ответа

4
Лучший ответ

дать ожидающее намерение в вашей 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);

Я уверен, что он работает:)

4

Эта проблема также возникает, когда длина вашего сообщения превышает стандартную длину текстового сообщения (например, 160 символов), вам нужно разделить msg на части и отправить... Используйте этот код, это может помочь вам

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);
}
0

Null Exception находится в длине SMS, вы можете использовать

try {}catch(Exception ex) {}

в вашем коде, если вы получите исключение null и попробуйте отправить "разделенные" смс, используя:

ArrayList<String> parts = sms.divideMessage(message);
sms.sendMultipartTextMessage(telephone, null, parts, null, null);
  • 0
    есть ли какое-то преимущество между обычной отправкой и перехватом по сравнению с просто делением и отправкой?
0

У меня возникла эта проблема при использовании специальных символов в SMS-сообщении. Меня заменили на обычные английские персонажи.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню