Отправляю сообщение:
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
У вас вот эта строчка есть в манифесте?
Комментариев нет:
Отправить комментарий