Android 发生某些事件时,将手机状态更改为响铃

Android 发生某些事件时,将手机状态更改为响铃,android,broadcastreceiver,telephony,Android,Broadcastreceiver,Telephony,我正在开发一个应用程序,当某些事件发生时,例如某个号码正在我的手机上呼叫时,我必须将我的手机状态更改为ringing。可能吗?我有一些广播接收器的想法,它会将事件广播到我的应用程序中,然后我的应用程序会在我的手机上拨打任何虚假的电话号码。请告诉我关于它的任何想法。可能吗?如何开始呢 感谢您的帮助。谢谢 您可以添加此代码,以便在触发某个事件时进行调用 String Numb = "tel:" + "your number"; Intent intent = new Inte

我正在开发一个应用程序,当某些事件发生时,例如某个号码正在我的手机上呼叫时,我必须将我的手机状态更改为ringing。可能吗?我有一些广播接收器的想法,它会将事件广播到我的应用程序中,然后我的应用程序会在我的手机上拨打任何虚假的电话号码。请告诉我关于它的任何想法。可能吗?如何开始呢


感谢您的帮助。谢谢

您可以添加此代码,以便在触发某个事件时进行调用

      String Numb = "tel:" + "your number";
      Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(Numb));
      startActivity(intent);
并将权限添加到您的清单中

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

您可以添加此代码,以便在触发某个事件时拨打电话

      String Numb = "tel:" + "your number";
      Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(Numb));
      startActivity(intent);
并将权限添加到您的清单中

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

试试这样的方法

public class Telephone extends BroadcastReceiver {

    private Context mContext;
    private Intent mIntent;

    @Override
    public void onReceive(Context context, Intent intent) {
        mContext = context;
        mIntent = intent;
        TelephonyManager tm = (TelephonyManager)              
                 context.getSystemService(Context.TELEPHONY_SERVICE);
        int events = PhoneStateListener.LISTEN_CALL_STATE;
        tm.listen(phoneStateListener, events);
    }

    private final PhoneStateListener phoneStateListener = 
                                                new PhoneStateListener() {
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            String callState = "UNKNOWN";
            switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:

                break;
            case TelephonyManager.CALL_STATE_RINGING:
                                // DO YOUR WORK HERE

                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                          if(incomingNumber.length() >0){

                                  // incoming call
                                 // DO YOUR WORK HERE when call is received
                                 // SEND SMS HERE
                            }
                           else{
                                      // outgoing call
                              }
                break;
            }

            super.onCallStateChanged(state, incomingNumber);
        }
    };

}
您将需要注册PhoneStateListener.LISTEN\u CALL\u状态,以便仅接收


广播接收器内的来电。

试试这样的方法

public class Telephone extends BroadcastReceiver {

    private Context mContext;
    private Intent mIntent;

    @Override
    public void onReceive(Context context, Intent intent) {
        mContext = context;
        mIntent = intent;
        TelephonyManager tm = (TelephonyManager)              
                 context.getSystemService(Context.TELEPHONY_SERVICE);
        int events = PhoneStateListener.LISTEN_CALL_STATE;
        tm.listen(phoneStateListener, events);
    }

    private final PhoneStateListener phoneStateListener = 
                                                new PhoneStateListener() {
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            String callState = "UNKNOWN";
            switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:

                break;
            case TelephonyManager.CALL_STATE_RINGING:
                                // DO YOUR WORK HERE

                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                          if(incomingNumber.length() >0){

                                  // incoming call
                                 // DO YOUR WORK HERE when call is received
                                 // SEND SMS HERE
                            }
                           else{
                                      // outgoing call
                              }
                break;
            }

            super.onCallStateChanged(state, incomingNumber);
        }
    };

}
您将需要注册PhoneStateListener.LISTEN\u CALL\u状态,以便仅接收


BroadcastReceiver内部的传入呼叫。

要更改为振铃,请将TelephonyManager、AudioManager和PhoneStateListener用作:

{
  // USE AudioManager  for Settingringing from vibration
         AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);   

         switch (am.getRingerMode()) {   
                 case AudioManager.RINGER_MODE_VIBRATE:   
                 Log.i("MyApp","NORMAL mode");
                 am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
              break;   
            }     

要更改为振铃,请将TelephonyManager、AudioManager和PhoneStateListener用作:

{
  // USE AudioManager  for Settingringing from vibration
         AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);   

         switch (am.getRingerMode()) {   
                 case AudioManager.RINGER_MODE_VIBRATE:   
                 Log.i("MyApp","NORMAL mode");
                 am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
              break;   
            }     

@沙米莉。。。我其实不想打电话……就像其他号码在打我的电话一样。这样行吗?好的..我可以用自己的手机编程打电话吗?你对此有什么看法吗?@Sharmilee。。。我其实不想打电话……就像其他号码在打我的电话一样。这样行吗?好的..我可以用自己的手机编程打电话吗?你对此有什么看法吗?