Java 从SMSPortalFragment发送短信不工作
我一直在尝试使用Java 从SMSPortalFragment发送短信不工作,java,android,sms,send,android-fragmentactivity,Java,Android,Sms,Send,Android Fragmentactivity,我一直在尝试使用send\u sms api发送测试消息。MySMSPortalFragment.javacode未显示错误。此外,Logcat中没有显示其他错误 代码构建并安装在Galaxy S8中 这个应用程序运行起来很有趣 转到fragment\u smsportal.xml工作正常 我可以输入我的姓名和信息 单击按钮时,它会在运行时请求我的权限 即使我允许权限,也不会发送任何消息 java代码: private static final int MY_PERMISSIONS_REQUES
send\u sms api发送测试消息。
MySMSPortalFragment.java
code未显示错误。此外,Logcat中没有显示其他错误
fragment\u smsportal.xml
工作正常权限
权限
,也不会发送任何消息private static final int MY_PERMISSIONS_REQUEST_SEND_SMS =0 ;
Button sendButon;
EditText fullName;
EditText textMessage;
String phoneNo = "***********";
String name;
String message;
String sendMessage;
public SMSPortalFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View smsportal = inflater.inflate(R.layout.fragment_smsportal, container, false);
fullName = (EditText) smsportal.findViewById(R.id.fullName);
textMessage = (EditText) smsportal.findViewById(R.id.textMessage);
sendButon = (Button) smsportal.findViewById(R.id.sendButon);
sendButon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendSMSMessage();
}
});
return smsportal;
}
private void sendSMSMessage() {
name = fullName.getText().toString();
message = textMessage.getText().toString();
sendMessage = name + " " + message;
if (ContextCompat.checkSelfPermission(getActivity(),
Manifest.permission.SEND_SMS)
!= PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(),
Manifest.permission.SEND_SMS)) {
} else {
ActivityCompat.requestPermissions(getActivity(),
new String[]{Manifest.permission.SEND_SMS},
MY_PERMISSIONS_REQUEST_SEND_SMS);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_SEND_SMS: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, sendMessage, null, null);
Toast.makeText(getActivity(),"SMS sent.", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getActivity(),"SMS failed, please try again.", Toast.LENGTH_LONG).show();
}
}
}
}
谁能告诉我我做错了什么
PS:出于安全考虑,我从这个代码中删除了我的电话号码
不要在onRequestPermissionsResult()中写入发送逻辑
及
试试这个。。。
明示许可
我遵循了这里的代码:使用SmsManager API。顺便说一句,非常感谢。花了我一段时间。作为noob,我是。但它现在正在工作。。
<uses-permission-sdk-23 android:name="android.permission.SEND_SMS"/>
try {
Bundle msgDataBundle = intent.getExtras();
String mobileNumber = msgDataBundle.getString("MobileNumber");
SmsManager smsManager = SmsManager.getDefault();
// smsManager.sendTextMessage(mobileNumber,null,"sam",null,null);
smsManager.sendTextMessage(mobileNumber, null, "Test Sample Message Text", null, null);
Toast.makeText(context, "SMS Sent!", Toast.LENGTH_LONG).show();
Log.d("---", "Sent");
} catch (Exception e) {
Toast.makeText(context, "SMS faild, please try again.", Toast.LENGTH_LONG).show();
Log.d("---", "Fail");
e.printStackTrace();
}