2010-11-15 7 views
1

J'utilise SmsManager pour envoyer des messages texte depuis mon application. L'extrait de code estSmsManager provoque la fermeture forcée de la force com.android.phone

smsManager.sendTextMessage(number, null, content, null, null); 

Pour les messages de moins de 160 caractères. Et pour les messages multipart que j'utilise,

ArrayList<String> parts = smsManager.divideMessage(content); 
sMan.sendMultipartTextMessage(number, null, parts, null, null); 

Ces déclarations provoquent Le com.android.phone processus est arrêté de façon inattendue s'il vous plaît essayer à nouveau de façon aléatoire. Je ne comprends pas ce qui se passe.

C'est la trace de la pile, je suis arrivé:

java.lang.NullPointerException 
E/AndroidRuntime(1143): at com.android.internal.telephony.SMSDispatcher.handleSendComplete(SMSDispatcher.java:741) 
E/AndroidRuntime(1143): at com.android.internal.telephony.SMSDispatcher.handleMessage(SMSDispatcher.java:407) 
E/AndroidRuntime(1143): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(1143): at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(1143): at android.app.ActivityThread.main(ActivityThread.java:4603) 
E/AndroidRuntime(1143): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(1143): at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime(1143): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
E/AndroidRuntime(1143): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
E/AndroidRuntime(1143): at dalvik.system.NativeStart.main(Native Method) 

Les pointeurs seront grandement appréciés.

Répondre

2
smsManager.sendTextMessage(number, null, content, null, null); 

Techniquement, les null paramètres pour la sentIntent et deliveredIntent ne devrait pas causer de problèmes. Mais ce n'est pas le cas avec mon application. J'ai vu de nombreuses applications sur le marché Android avec le même problème et les utilisateurs leur attribuant une note de 1 étoile. J'ai repassé les paramètres nuls avec des intentions insignifiantes et maintenant je n'ai pas de difficulté à les utiliser.

PendingIntent sent = PendingIntent.getBroadcast(context, 0, new Intent(), 0); 
PendingIntent delivered = PendingIntent.getBroadcast(context, 0, new Intent(), 0); 
smsManager.sendTextMessage(number, null, content, sent, delivered); 

Maintenant, le code fonctionne correctement.

Questions connexes