2017-06-27 8 views
0

でSMSを送信できませんでした。。エラーメッセージはありません。マニフェストファイルのパーミッションを許可し、必要なクラスをインポートしましたが、何が間違っているかわからないようです。どんな助けでも大歓迎です。実デバイスを使用してSMSを送信できませんでした

sendMessage(contact,message); 

    private void sendMessage(String contact, String message) 
{ 
    SmsManager smsManager = SmsManager.getDefault(); 

    try { 
     smsManager.sendTextMessage(contact, null , message , null , null); 
     Toast.makeText(getApplicationContext(), "SMS Sent.", Toast.LENGTH_LONG).show(); 

    } catch (Exception e) 
    { 

     Toast.makeText(getApplicationContext(), "SMS failed to send.", Toast.LENGTH_LONG).show(); 

    } 

} 

マニフェスト

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

答えて

0

この機能を使用し..

sendMySMS(personalPhone、メッセージ)。

private void sendMySMS(String personalPhone, String messege) 
{ 
    SmsManager sms = SmsManager.getDefault(); 
    List<String> messages = sms.divideMessage(messege); 
    for (String msg : messages) 
    { 
     PendingIntent sentIntent = PendingIntent.getBroadcast(getActivity(), 0, new Intent("SMS_SENT"), 0); 
     PendingIntent deliveredIntent = PendingIntent.getBroadcast(getActivity(), 0, new Intent("SMS_DELIVERED"), 0); 
     sms.sendTextMessage(personalPhone, null, msg, sentIntent, deliveredIntent); 
    } 
} 

アクセス許可を追加...あなたは、Android 6.0(API 23)以上で、実際のデバイスを使用している場合は

<uses-permission android:name="android.permission.SEND_SMS"/> 
<uses-permission android:name="android.permission.RECEIVE_SMS"/> 
0

は、実行時に許可を要求しなければなりません。

SEND_SMSは危険な許可として分類されています。

したがって、sms sendロジックを実行する前に、メッセージの送信を許可するかどうかをユーザーに確認する必要があります。ユーザーがこのオーバーライドメソッドに

@Override 
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case MY_PERMISSIONS_REQUEST_SEND_SMS: { 
      // If request is cancelled, the result arrays are empty. 
      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
       // PERMISSION GRANTED 
       // Now you can send sms 
      } else { 
       // PERMISSION DENIED 
       // You should disable send sms feature 
      } 
      return; 
     } 
    } 
} 
を追加する権限を付与している場合は、あなたの活動に

if (ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) { 

     ActivityCompat.requestPermissions(
       thisActivity, 
       new String[]{Manifest.permission.SEND_SMS}, 
       MY_PERMISSIONS_REQUEST_SEND_SMS); 
    } 

これを追加する最初の必要性次に、あなたがチェックすることを行うには

関連する問題