0

このコードを使用して、この電話を受ける前に着信番号に SMS を送信しますが、SMS は送信されません。マニフェストファイルで、これらの権限を追加します

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

public class check extends BroadcastReceiver {


Context context = null;
 private static final String TAG = "Phone call";
 private ITelephony telephonyService;


    @Override
     public void onReceive(Context context, Intent intent) {
      Log.v(TAG, "Receving....");

      TelephonyManager telephony = (TelephonyManager) 
      context.getSystemService(Context.TELEPHONY_SERVICE);  
      try {
       Class c = Class.forName(telephony.getClass().getName());
       Method m = c.getDeclaredMethod("getITelephony");
       m.setAccessible(true);
       Bundle b=intent.getExtras();
       num=b.getString(telephony.EXTRA_INCOMING_NUMBER);
       String g=num.substring(num.length()-11,num.length());

       SmsManager smsManager = SmsManager.getDefault();
             smsManager.sendTextMessage(num,null, "rrrrrrrrr", null,null);


      } catch (Exception e) {
       e.printStackTrace();
      }

     }

誰か助けてください

4

1 に答える 1

0

クラスにPhoneStateListenerを拡張させてから、このメソッドを使用します。

public void onCallStateChanged(int state, String phoneNumber) {
    SmsManager sms = SmsManager.getDefault();
    String message = "";
    if (state == TelephonyManager.CALL_STATE_RINGING) {
        sms.sendTextMessage(phoneNumber, null, message, null, null);
    }
}
于 2013-01-24T18:45:08.817 に答える