SMS мессенджер не работает и вылетает мое приложение с ошибкой по методу onclick - PullRequest
0 голосов
/ 16 апреля 2020

Я новичок в android студии, и я не понимаю, почему она выдает ошибку. Кроме того, я пишу большие сообщения с помощью менеджера SMS. Я установил разрешение на отображение большей части данных в сообщении, полученных из других действий. Поэтому у меня есть общие предпочтения для получения этих данных. Я не знаю, почему он показывает мою ошибку в моем методе onclick, и в этом методе он показывает мне ошибку на объекте менеджера SMS. Мы ценим любые предложения.

 public void btn_sendsms_OnClick(View v){
      //  Patientinfo patientinfo=new Patientinfo();
       // String message;
        SharedPreferences sharedPreferences= getSharedPreferences("my_key",MODE_PRIVATE);
        String name=sharedPreferences.getString("name","");
        String phone=sharedPreferences.getString("phone","");
        String age=sharedPreferences.getString("age","");
        String symptoms=sharedPreferences.getString("symptoms","");
        String diagnosis=sharedPreferences.getString("diagnosis","");
        String message=sharedPreferences.getString("message","");

        String complete="your name is : "+name+"\n your age is : "+age+"\n your symptoms are : "+symptoms+
                "\n diagnosis : "+diagnosis;

        final String[] time = new String[10];

        if(spinner_T2.getSelectedItem().toString().equals("0") && spinner_T3.getSelectedItem().toString().equals("0")
        &&spinner_T4.getSelectedItem().toString().equals("0") && spinner_T5.getSelectedItem().toString().equals("0")
        ){
            SmsManager sms=SmsManager.getDefault();
                    time[0] =spinner_T1.getSelectedItem().toString();
                    String ftime="Time to take medicine 1 is :-"+time[0];
                    String ftime2=complete+"\n"+message+"\n"+ftime;
            ArrayList<String> messages = sms.divideMessage(ftime2);
            sms.sendMultipartTextMessage(phone,null,messages,null,null);
            /*  for (String msg : messages) {

                sms.sendTextMessage(phone,null,msg,sentPI,deliveredPI);
            }*/

            //time="Time to take medcine 1 : "+spinner_T1.getSelectedItem().toString();


журналы ошибок

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.napps.voiceprescription, PID: 16023
    java.lang.IllegalStateException: Could not execute method for android:onClick
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:402)
        at android.view.View.performClick(View.java:6608)
        at android.view.View.performClickInternal(View.java:6585)
        at android.view.View.access$3100(View.java:785)
        at android.view.View$PerformClick.run(View.java:25921)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:201)
        at android.app.ActivityThread.main(ActivityThread.java:6810)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:397)
        at android.view.View.performClick(View.java:6608) 
        at android.view.View.performClickInternal(View.java:6585) 
        at android.view.View.access$3100(View.java:785) 
        at android.view.View$PerformClick.run(View.java:25921) 
        at android.os.Handler.handleCallback(Handler.java:873) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:201) 
        at android.app.ActivityThread.main(ActivityThread.java:6810) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873) 
     Caused by: java.lang.SecurityException: Sending SMS message: uid 10507 does not have android.permission.SEND_SMS.
        at android.os.Parcel.createException(Parcel.java:1953)
        at android.os.Parcel.readException(Parcel.java:1921)
        at android.os.Parcel.readException(Parcel.java:1871)
        at com.android.internal.telephony.ISms$Stub$Proxy.sendMultipartTextForSubscriber(ISms.java:1097)
        at android.telephony.SmsManager.sendMultipartTextMessageInternal(SmsManager.java:634)
        at android.telephony.SmsManager.sendMultipartTextMessage(SmsManager.java:616)
        at com.napps.voiceprescription.Editinfo.btn_sendsms_OnClick(Editinfo.java:939)

...