0

SMSManager を使用して漢字で SMS を送信しようとしています。英語とドイツ語では問題なく機能しますが、残念ながら中国語では機能しません。

私のログ:

    01-07 20:23:56.200: W/System.err(15742): java.lang.NullPointerException
01-07 20:23:56.200: W/System.err(15742):    at android.os.Parcel.readException(Parcel.java:1266)
01-07 20:23:56.204: W/System.err(15742):    at android.os.Parcel.readException(Parcel.java:1248)
01-07 20:23:56.204: W/System.err(15742):    at com.android.internal.telephony.ISms$Stub$Proxy.sendText(ISms.java:561)
01-07 20:23:56.204: W/System.err(15742):    at android.telephony.SmsManager.sendTextMessage(SmsManager.java:109)
01-07 20:23:56.204: W/System.err(15742):    at com.app.myapp.MainActivity.sendSms(MainActivity.java:158)
01-07 20:23:56.204: W/System.err(15742):    at com.app.myapp.MainActivity.buttonClick(MainActivity.java:103)
01-07 20:23:56.204: W/System.err(15742):    at java.lang.reflect.Method.invokeNative(Native Method)
01-07 20:23:56.204: W/System.err(15742):    at java.lang.reflect.Method.invoke(Method.java:521)
01-07 20:23:56.204: W/System.err(15742):    at android.view.View$1.onClick(View.java:2067)
01-07 20:23:56.204: W/System.err(15742):    at android.view.View.performClick(View.java:2408)
01-07 20:23:56.204: W/System.err(15742):    at android.view.View$PerformClick.run(View.java:8818)
01-07 20:23:56.204: W/System.err(15742):    at android.os.Handler.handleCallback(Handler.java:587)
01-07 20:23:56.204: W/System.err(15742):    at android.os.Handler.dispatchMessage(Handler.java:92)
01-07 20:23:56.204: W/System.err(15742):    at android.os.Looper.loop(Looper.java:123)
01-07 20:23:56.204: W/System.err(15742):    at android.app.ActivityThread.main(ActivityThread.java:4627)
01-07 20:23:56.208: W/System.err(15742):    at java.lang.reflect.Method.invokeNative(Native Method)
01-07 20:23:56.208: W/System.err(15742):    at java.lang.reflect.Method.invoke(Method.java:521)
01-07 20:23:56.208: W/System.err(15742):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
01-07 20:23:56.208: W/System.err(15742):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
01-07 20:23:56.208: W/System.err(15742):    at dalvik.system.NativeStart.main(Native Method)

そして、これが私がSMSを送信する方法です

SmsManager smsManager = SmsManager.getDefault();
                    for (int i = 0; i < numbers.size(); i++) {
                        smsManager.sendTextMessage(numbers.get(i), null,
                                message, null, null);
                    }

何か案は?前もって感謝します。

4

1 に答える 1

0

私は同じ問題を抱えていました。文字数を制限するだけで解決できました。英語では、160 文字まで使用できます。中国語では、70 文字しか使用できません (各文字を表すには、より多くのバイトが必要です)。

したがって、それをテストするには、 message を message.substring(0, 69) に置き換えるだけで機能します。

この問題を適切に解決するには、分割されたメッセージを送信する必要があります。次を確認してください: http://www.programering.com/a/MTM4EjMwATE.html

于 2016-09-28T09:54:44.167 に答える