2017-12-06 12 views
0

私は使用しているテストメッセージを送信しようとしていますsend_sms api.私のSMSPortalFragment.javaコードはエラーを表示しません。また、Logcatには他のエラーも表示されません。SMSPortalFragmentからSMSが送信されない

  1. コードは、Galaxy S8に組み込まれてインストールされます。
  2. アプリが楽しく実行されます。
  3. fragment_smsportal.xmlに行っても問題ありません。
  4. 私は自分の名前とメッセージを入力できます。
  5. ボタンをクリックすると、実行時にPERMISSIONと尋ねられます。
  6. 私が許可した後もメッセージはありませんPERMISSIONです。

Javaコード:

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:セキュリティ上の懸念からこのコードから電話番号を削除しました。

答えて

0

onRequestPermissionsResultであなたの送信ロジックを記述しないでください() と

マニフェスト許可

<uses-permission-sdk-23 android:name="android.permission.SEND_SMS"/> 

、ここ

...これを試してみてくださいSmsManagerのAPIを使用して https://www.tutorialspoint.com/android/android_sending_sms.htm :私はここからコードをたどってきた

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(); 
     } 
+0

スニペットにあります。 –

+0

途中でおかげさまでありがとうございました。私はnoobですが、今は働いています。 –

関連する問題