【手機勤務員】android自動切斷來電,如果是手機號碼回複一條簡訊

來源:互聯網
上載者:User

標籤:

當你的手機需要更換新號碼的時候,或者當你出國旅行不需要攜帶國內手機的時候,你的手機可以放在家中,當有人來電時自動掛斷,如果對方是手機號碼(11位長首位為1)就回複一條簡訊。

廢話少提,直接上代碼!

1、必須有如下許可權:

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

2、在工程的Package Explorer中的src按右鍵選New、Package,輸入:com.android.internal.telephony

3、在com.android.internal.telephony按右鍵選New、File,檔案名稱:ITelephony.aidl,輸入的內容如下:

package com.android.internal.telephony;interface ITelephony{        boolean endCall();}

4、在MainActivity加入以下代碼:

    private ITelephony  iTelephony = null;    private TelephonyManager iTeleManager = null;        public void initTelephony() {    iTeleManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);    Class <TelephonyManager> c = TelephonyManager.class;     Method getITelephonyMethod = null;     try {     getITelephonyMethod = c.getDeclaredMethod("getITelephony", (Class[])null);     getITelephonyMethod.setAccessible(true);     iTelephony = (ITelephony) getITelephonyMethod.invoke(iTeleManager, (Object[])null);     } catch (IllegalArgumentException e) {     e.printStackTrace();     } catch (Exception e) {     e.printStackTrace();     }    }        PhoneStateListener psl = new PhoneStateListener() {    @Override    public void onCallStateChanged(int state, String incomingNumber) {        // TODO Auto-generated method stub    super.onCallStateChanged(state, incomingNumber);    switch(state){    case TelephonyManager.CALL_STATE_RINGING:Log.i("DEBUG", "uncall : " + incomingNumber);Message msg = new Message();msg.what = 3618;msg.obj = incomingNumber;handler.sendMessage(msg);    try {   // 當電話接入時,自動掛斷。   iTelephony.endCall();    } catch (RemoteException e) {    // TODO Auto-generated catch block    e.printStackTrace();    }    break;    }    }                 };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initTelephony();iTeleManager.listen(psl, PhoneStateListener.LISTEN_CALL_STATE);}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();iTeleManager.listen(null, 0);}        private Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubsuper.handleMessage(msg);myHandleMessage(msg);}        };        private void myHandleMessage(Message msg) {    if(msg.what == 3618) {    String phoneNumber = (String)msg.obj;     if(phoneNumber.length() == 11 && phoneNumber.charAt(0) == '1') {     SmsManager sms = SmsManager.getDefault();     String smsmsg = "您好,機主已經更新號碼,有事請撥打:188 2318 3718。【手機勤務員】竭誠為您提供優質服務!";     sms.sendTextMessage(phoneNumber, null, smsmsg, null, null);        }    }    }

至此,手機勤務員的自動掛機並簡訊通知的優質服務宣告完成!

【手機勤務員】android自動切斷來電,如果是手機號碼回複一條簡訊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.