0
사용하여 테스트 메시지를 보내려고했습니다 send_sms api.
내 SMSPortalFragment.java
코드에 오류가 없습니다. 또한 Logcat에 표시된 다른 오류가 없습니다.SMSPortalFragment에서 SMS를 보내지 않습니다.
- 코드는 Galaxy S8에서 빌드 및 설치됩니다.
- 앱이 재미있게 실행됩니다.
fragment_smsportal.xml
으로가는 것이 좋습니다.- 내 이름과 메시지를 입력 할 수 있습니다.
- 버튼을 클릭하면 런타임에 내
PERMISSION
을 묻습니다. - 허용 메시지는 내가 허용 한 후에도 발생합니다.
PERMISSION
.
자바 코드 :
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();
}
}
}
}
사람이 내가 잘못 뭐하는 거지 말씀해 주시겠습니까?
추신 : 안전 문제로 인해이 코드에서 전화 번호를 제거했습니다.
스 니펫을입니다. –
길을 많이 고마워 .. 잠시만 .. 멍청 아. 나는 .. 근데 .. 지금 일하고있어. –