Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Отправка длинных SMS сообщений

#java #android #sms


Отправляю сообщение:

ArrayList al_message = sms.divideMessage(smsText);
for (int i = 0; i < al_message.size(); i++) {
            Intent sentIntent = new Intent(SENT);

            PendingIntent pi_sent = PendingIntent.getBroadcast(this, i, sentIntent,
                    PendingIntent.FLAG_UPDATE_CURRENT);
            al_piSent.add(pi_sent);

            Intent deliveredIntent = new Intent(DELIVERED);

            PendingIntent pi_delivered = PendingIntent.getBroadcast(this, i, deliveredIntent,
                    PendingIntent.FLAG_UPDATE_CURRENT);
            al_piDelivered.add(pi_delivered);
        }
        sms.sendMultipartTextMessage(PhoneNumberText, null, al_message, al_piSent,
al_piDelivered);


Если пишу длинное сообщение на английском или цифрами, то все работает нормально,
если пишу на кириллице, то приложение крашется. Если пишу короткое сообщение на кириллице,
то нормально все.

Ошибка возникает здесь:

ArrayList al_message = sms.divideMessage(smsText);


Подумал, что может быть что нибудь с кодировкой, в Android Studio везде выставил
UTF-8, но не помогло.

ЛОГ:

06-28 14:11:43.952  14407-14407/? I/art﹕ Late-enabling -Xcheck:jni
06-28 14:11:44.178  14407-14430/com.example.sanek_000.avr D/OpenGLRenderer﹕ Use EGL_SWAP_BEHAVIOR_PRESERVED: true
06-28 14:11:44.184  14407-14407/com.example.sanek_000.avr D/Atlas﹕ Validating map...
06-28 14:11:44.243  14407-14430/com.example.sanek_000.avr I/Adreno-EGL﹕ :
QUALCOMM Build: 01/15/15, ab0075f, Id3510ff6dc
06-28 14:11:44.244  14407-14430/com.example.sanek_000.avr I/OpenGLRenderer﹕ Initialized
EGL, version 1.4
06-28 14:11:44.265  14407-14430/com.example.sanek_000.avr D/OpenGLRenderer﹕ Enabling
debug mode 0
06-28 14:12:04.154  14407-14407/com.example.sanek_000.avr D/AndroidRuntime﹕ Shutting
down VM
06-28 14:12:04.155  14407-14407/com.example.sanek_000.avr E/AndroidRuntime﹕ FATAL
EXCEPTION: main
    Process: com.example.sanek_000.avr, PID: 14407
    java.lang.IllegalStateException: Could not execute method of the activity
            at android.view.View$1.onClick(View.java:4020)
            at android.view.View.performClick(View.java:4780)
            at android.view.View$PerformClick.run(View.java:19866)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5254)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at android.view.View$1.onClick(View.java:4015)
            at android.view.View.performClick(View.java:4780)
            at android.view.View$PerformClick.run(View.java:19866)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5254)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
     Caused by: java.lang.SecurityException: Requires READ_PHONE_STATE: Neither user
10143 nor current process has android.permission.READ_PHONE_STATE.
            at android.os.Parcel.readException(Parcel.java:1546)
            at android.os.Parcel.readException(Parcel.java:1499)
            at com.android.internal.telephony.IPhoneSubInfo$Stub$Proxy.getGroupIdLevel1(IPhoneSubInfo.java:528)
            at android.telephony.TelephonyManager.getGroupIdLevel1(TelephonyManager.java:1833)
            at android.telephony.SmsMessage.hasEmsSupport(SmsMessage.java:781)
            at com.android.internal.telephony.gsm.SmsMessage.calculateLength(SmsMessage.java:808)
            at android.telephony.SmsMessage.fragmentText(SmsMessage.java:323)
            at android.telephony.SmsManager.divideMessage(SmsManager.java:325)
            at com.example.sanek_000.avr.StartActivity.SendSMS(StartActivity.java:167)
            at com.example.sanek_000.avr.StartActivity.OnStartSMS(StartActivity.java:203)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at android.view.View$1.onClick(View.java:4015)
            at android.view.View.performClick(View.java:4780)
            at android.view.View$PerformClick.run(View.java:19866)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5254)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

    


Ответы

Ответ 1



В логах у вас ругань по поводу не добавленного разрешения в манифесте Caused by: java.lang.SecurityException: Requires READ_PHONE_STATE У вас вот эта строчка есть в манифесте?

Комментариев нет:

Отправить комментарий