简体   繁体   中英

Sending SMS message: uid 10137 does not have android.permission.SEND_SMS

In my first phone which is using lollipop the program runs well, I can send and receive SMS. But in my second phone which is using Marshmallow, my app is forced closed. I have no idea what's the problem

This is the log after forced closed...

java.lang.IllegalStateException: Could not execute method for android:onClick at android.view.View$DeclaredOnClickListener.onClick(View.java:4461) at android.view.View.performClick(View.java:5207) at android.widget.CompoundButton.performClick(CompoundButton.java:122) at android.view.View$PerformClick.run(View.java:21177) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5458) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at android.view.View$DeclaredOnClickListener.onClick(View.java:4456) ... 10 more Caused by: java.lang.SecurityException: Sending SMS message: uid 10137 does not have android.permission.SEND_SMS. at android.os.Parcel.readException(Parcel.java:1620) at android.os.Parcel.readException(Parcel.java:1573) at com.android.internal.telephony.ISms$Stub$Proxy.sendTextForSubscriber(ISms.java:842) at android.telephony.SmsManager.sendTextMessageInternal(SmsManager.java:311) at android.telephony.SmsManager.sendTextMessage(SmsManager.java:294) at com.example.tamvan.komunikasiberlapis.MainActivity.clicksaklar1GSMMode(MainActivity.java:379) ... 12 more

and this is my permission in manifest

<uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
For Marshmallow, You need to add permission

Code:

    ...
    private static final int PERMISSION_SEND_SMS = 1;
    ...

    if(ActivityCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED)
    {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, PERMISSION_SEND_SMS);
    }
    else 
    {
        //do send or read sms
    }
    ...
    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
        {
            switch(requestCode)
            {
                case PERMISSION_SEND_SMS:
                    if(grantResults != null && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
                    {
                        //do send or read sms
                    }
                    break;
            }
        }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM