Страницы

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

среда, 5 декабря 2018 г.

Отправка длинных 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)


Ответ

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

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

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