繁体   English   中英

发送短信:uid 10137没有android.permission.SEND_SMS

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

在我的第一个使用棒棒糖的手机中,程序运行良好,我可以发送和接收短信。 但是在使用棉花糖的第二部手机中,我的应用被强制关闭。 我不知道怎么了

这是强制关闭后的日志...

java.lang.IllegalStateException:无法在android.widget执行android.onClick的方法,在android.view.View $ DeclaredOnClickListener.onClick(View.java:4461)在android.view.View.performClick(View.java:5207) android.os.Handler.handleCallback(Handler.java:739)上的.CompoundButton.performClick(CompoundButton.java:122)在android.view.View $ PerformClick.run(View.java:21177)在android.os.Handler。 android.os.Looper.loop(Looper.java:148)的dispatchMessage(Handler.java:95)android.app.ActivityThread.main(ActivityThread.java:5458)的java.lang.reflect.Method.invoke(Native) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:738)处com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)的原因:java.lang.reflect .java.lang.reflect.Method.invoke处的.InvocationTargetException(本地方法)android.view.View $ DeclaredOnClickListener.onClick(View.java:4456)... 10造成原因:java.lang.SecurityException:发送SMS消息:uid 10137不 具有android.permission.SEND_SMS。 在android.os.Parcel.readException(Parcel.java:1620)在android.os.Parcel.readException(Parcel.java:1573)在com.android.internal.telephony.ISms $ Stub $ Proxy.sendTextForSubscriber(ISms.java :842),位于android.telephony.SmsManager.sendTextMessageInternal(SmsManager.java:311),位于com.example.tamvan.komunikasiberlapis.MainActivity.clicksaklar1GSMMode(MainActivity.java: 379)...还有12个

这是我在清单中的允许

<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;
            }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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