【问题标题】:Call block and send SMS back呼叫阻止并发送短信
【发布时间】:2012-03-23 16:55:55
【问题描述】:

我在 Android 中有一个项目,它使用阻止呼叫并将短信发送回呼叫者。
我都在这里搜索。但是那些代码不起作用。我需要帮助。 我正在使用 Android 2.2

【问题讨论】:

  • 第一,把你的代码放在这里看看有什么问题,第二,你不能在android中阻止呼叫,只能接听并关闭。
  • 我的应用程序正在阻止呼叫并向呼叫者返回一条消息,说明阻止呼叫的原因...如果无法阻止呼叫,如何避免呼叫。
  • 我不知道如何以编程方式关闭通话

标签: android callback sms


【解决方案1】:

将这个前任用于短信管理器

 Button bttsendsms;

public void onCreate(Bundle savedInstanceState) {

    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);
    }
}

【讨论】:

    【解决方案2】:

    试试这个代码......这对我有用,我正在开发相同的应用程序。 在 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;
            }
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多