Java 发送SMS消息:uid 10137没有android.permission.SEND\u SMS
在我的第一部使用棒棒糖的手机中,程序运行良好,我可以发送和接收短信。但是,在我的第二部手机上,我的应用程序被强制关闭了。我不知道有什么问题 这是强行关闭后的日志 java.lang.IllegalStateException:无法执行的方法 安卓:点击 view.view$DeclaredOnClickListener.onClick(view.java:4461)位于 android.view.view.performClick(view.java:5207)位于 performClick(CompoundButton.java:122)位于 查看$PerformClick.run(view.java:21177) handleCallback(Handler.java:739)位于 dispatchMessage(Handler.java:95)位于 Looper.loop(Looper.java:148)位于 android.app.ActivityThread.main(ActivityThread.java:5458)位于 java.lang.reflect.Method.invoke(本机方法)位于 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)上 by:java.lang.reflect.InvocationTargetException位于 java.lang.reflect.Method.invoke(本机方法)位于 view.view$DeclaredOnClickListener.onClick(view.java:4456)。。。 10个以上原因:java.lang.SecurityException:发送短信: 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.smsmsmanager.sendTextMessageInternal(smsmsmanager.java:311) 位于android.telephony.smsmsmanager.sendTextMessage(smsmsmanager.java:294) 在 com.example.tamvan.komunikasiberlapis.MainActivity.ClickSakla1GSMMode(MainActivity.java:379) ... 还有12个 这是我在舱单上的许可Java 发送SMS消息:uid 10137没有android.permission.SEND\u SMS,java,android,sms,android-5.0-lollipop,Java,Android,Sms,Android 5.0 Lollipop,在我的第一部使用棒棒糖的手机中,程序运行良好,我可以发送和接收短信。但是,在我的第二部手机上,我的应用程序被强制关闭了。我不知道有什么问题 这是强行关闭后的日志 java.lang.IllegalStateException:无法执行的方法 安卓:点击 view.view$DeclaredOnClickListener.onClick(view.java:4461)位于 android.view.view.performClick(view.java:5207)位于 performClick(C
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
对于棉花糖,您需要添加权限
代码:
...
私有静态最终整数权限\u发送\u短信=1;
...
if(ActivityCompat.checkSelfPermission(this,Manifest.permission.SEND_SMS)!=PackageManager.permission_已授予)
{
ActivityCompat.requestPermissions(这是一个新字符串[]{Manifest.permission.SEND_SMS},permission_SEND_SMS});
}
其他的
{
//发送或阅读短信
}
...
@凌驾
public void onRequestPermissionsResult(int-requestCode、字符串[]权限、int[]grantResults)
{
开关(请求代码)
{
案例权限\u发送\u短信:
if(grantResults!=null&&grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION\u已授予)
{
//发送或阅读短信
}
打破
}
}
当我按下按钮发送短信时,问题可能会重复,我的应用程序会崩溃,是的,因为你实际上还没有权限。阅读链接帖子上的已接受答案。它解释了为什么会发生这种情况,你需要做什么,甚至提供了一个临时的解决办法。 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; } }