Блокировка вызова и отправка СМС обратно

У меня есть проект в Android, использующий блокировку звонка и отправку смс обратно звонящему.
Я ищу все здесь. Но эти коды не работают. Мне нужна помощь. Я использую Android 2.2


person user121    schedule 06.03.2012    source источник
comment
во-первых, поместите сюда свой код, чтобы посмотреть, что не так, во-вторых, вы не можете заблокировать вызов в андроиде, только ответить и закрыть.   -  person Buda Gavril    schedule 06.03.2012
comment
мое приложение блокирует вызовы и возвращает сообщение вызывающему абоненту с указанием причины блокировки вызовов ... Если невозможно заблокировать вызовы, как можно избежать вызовов.   -  person user121    schedule 08.03.2012
comment
Я не знаю, как программно закрывать вызовы   -  person user121    schedule 08.03.2012


Ответы (2)


Используйте этот ex для менеджера смс

 Button bttsendsms;

public void onCreate (Bundle saveInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    bttsendsms =(Button)findViewById(R.id.button1);
    bttsendsms.setOnClickListener(new View.OnClickListener()
       {

        public void onClick(View v) {
            Toast.makeText(SmsActivity.this, "hello", 6000).show();
           sendSMS("5556","hello  friends");
           sendSMS("5558","hello  friends");
        }
    });
  }
    private void sendSMS(String phoneNumber,String message)
    {
         SmsManager sms=SmsManager.getDefault();
         sms.sendTextMessage(phoneNumber,null,message,null,null);
    }
}
person Kumar KL    schedule 06.03.2012

попробуйте этот код... это работает, работает для меня, я разрабатываю такое же приложение. используйте этот код в методе oncreate.

TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        PhoneStateListener callStateListener = new PhoneStateListener() {
            public void onCallStateChanged(int state, String incomingNumber) {
                // React to incoming call.

            // number = PhoneNumberUtils.formatNumber(incomingNumber);
            number = incomingNumber;
            // If phone ringing
            if (state == TelephonyManager.CALL_STATE_RINGING) {



            new LoadStuff().execute(incomingNumber, message);
            boolean isEnabled = Settings.System.getInt(
                getContentResolver(),
        Settings.System.AIRPLANE_MODE_ON, 0) == 1;

    if (!isEnabled) {
        Settings.System.putInt(getContentResolver(),
                            Settings.System.AIRPLANE_MODE_ON,
                                        isEnabled ? 0 : 1);

                                // Post an intent to reload
                                Intent intent = new Intent(
                                        Intent.ACTION_AIRPLANE_MODE_CHANGED);
                                intent.putExtra("state", !isEnabled);
                                sendBroadcast(intent);
                            }

                        } 
            }
            // If incoming call received
            if (state == TelephonyManager.CALL_STATE_OFFHOOK) {

            }

            if (state == TelephonyManager.CALL_STATE_IDLE) {
                boolean isEnabled = Settings.System.getInt(
                        getContentResolver(),
                        Settings.System.AIRPLANE_MODE_ON, 0) == 1;
                if (isEnabled) {
                    Settings.System.putInt(getContentResolver(),
                            Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0
                                    : 1);

                    // Post an intent to reload
                    Intent intent = new Intent(
                            Intent.ACTION_AIRPLANE_MODE_CHANGED);
                    intent.putExtra("state", !isEnabled);
                    sendBroadcast(intent);

                }

            }
        }

    };
    telephonyManager.listen(callStateListener,
            PhoneStateListener.LISTEN_CALL_STATE);

}

и используйте этот код вне метода oncreate

public class LoadStuff extends AsyncTask<String, String, Void> {

        @Override
        protected Void doInBackground(String... params) {
            // TODO Auto-generated method stub
            String number = params[0];
            String message = params[1];
            boolean error = false;
            try {
                SmsManager sms = SmsManager.getDefault();
                sms.sendTextMessage(number, null, message, null, null);

            } catch (IllegalArgumentException e) {
                error = true;
            }

            if (error) {
                Toast.makeText(getBaseContext(), "SMS SENDING FAILED",
                        Toast.LENGTH_SHORT).show();
            }
            return null;
        }

    }
person user2823167    schedule 08.10.2013