4

結(jié)構(gòu)

1:監(jiān)聽來電事件
2:查詢,打開,數(shù)據(jù)庫。匹配正則表達式
3:監(jiān)聽用戶手勢

1:監(jiān)聽來電事件

1:拿到電話管理器
  TelePMG = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
2:創(chuàng)建電話監(jiān)聽器類繼承PhoneStateListener
  class MyPhoneStateListener extends PhoneStateListener{
        //重寫電話狀態(tài)改變的方法
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            switch (state){
                case TelephonyManager.CALL_STATE_IDLE:
                    //電話空閑狀態(tài)
                    System.out.println("空閑狀態(tài)");
                    if(mWindowManager!=null&&toast_view!=null){
                        //掛斷電話的時候移除吐司
                        mWindowManager.removeView(toast_view);
                    }
                    break;
                case TelephonyManager.CALL_STATE_OFFHOOK:
                    //忙碌狀態(tài),就是占線
                    break;
                case TelephonyManager.CALL_STATE_RINGING:
                    //來電狀態(tài)
                    System.out.println("來電了號碼是"+incomingNumber);
                    //來電后打印吐司
                    showToast(incomingNumber);
                    break;
            }
            super.onCallStateChanged(state, incomingNumber);
        }
    }
3:創(chuàng)建電話監(jiān)聽器的對象
  myPhoneStateListener = new MyPhoneStateListener();
4:使用電話管理器的listen方法綁定監(jiān)聽器
  TelePMG.listen(myPhoneStateListener,PhoneStateListener.LISTEN_CALL_STATE);
5:使用完畢后記得用CLOSE方法關(guān)閉

2:查詢,打開,數(shù)據(jù)庫。匹配正則表達式

public class SelectAdressdb {
    //數(shù)據(jù)庫地址
    public static String  PATH = "data/data/com.joker.mobilesafe/files/address.db";
    private static String adress;
    //封裝查詢的方法
    public  static String SelectAdress (String phone){
        //截取電話前7位
        //匹配正則表達式,不然輸入一個沒有7位的數(shù)字時候會報錯
        System.out.println(phone+"```````````````");
        String regular = "^1[3-8]\\d{9}";
        if (phone.matches(regular)){
            phone = phone.substring(0,7);
            SQLiteDatabase db = SQLiteDatabase.openDatabase(PATH, null, SQLiteDatabase.OPEN_READONLY);
            //表的名字,需要得到查詢結(jié)果的字段,查詢條件,查詢條件的值,是否分組,分組后查詢條件,是否排序
            Cursor cursor = db.query("data1", new String[]{"outkey"}, "id=?", new String[]{phone}, null, null, null);
            if (cursor.moveToNext()){
                //這里傳入的0 是上面第二個條件數(shù)組的下標(biāo)值
                String outkey = cursor.getString(0);
                Cursor indexCursor = db.query("data2", new String[]{"location"}, "id=?", new String[]{outkey}, null, null, null);
                if (indexCursor.moveToNext()){
                    adress = indexCursor.getString(0);
                }else{
                    adress ="未知號碼";
                }
            }else {
                adress ="未知號碼";
            }
        }else {
            int length = phone.length();
            switch (length){
                case 3:
                    adress = "你難道連報警電話都不知道?";
                    break;
                default:
                    adress = "不知道是哪種情況";
                    break;
            }
        }
        return adress;
    }
}

3:監(jiān)聽用戶手勢

1:創(chuàng)建監(jiān)聽用戶手勢的類(第二個參數(shù)傳入監(jiān)聽用戶手勢的監(jiān)聽器)
  GestureDetector gestureDetector = new GestureDetector(this,SimpleOnGestureListener)
2:實現(xiàn)監(jiān)聽器的onFling方法(手勢起點參數(shù),手勢移動當(dāng)前的參數(shù),每秒x軸方向移動的像素,每秒y軸方向移動的像素)
  public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                if (e1.getX()-e2.getX()>0){
                    //下一頁
                    String phone = et_phone_number.getText().toString();
                    if(!TextUtils.isEmpty(phone)){
                        Intent intent = new Intent(Set_up3.this, Set_up4.class);
                        startActivity(intent);
                        SpUtil.PutString(getApplicationContext(), FianlMath.CONTACT_MAN, phone);
                        finish();
                        overridePendingTransition(R.anim.next_anim_in,R.anim.next_anim_out);
                    }else {
                        Toast.makeText(Set_up3.this,"請輸入聯(lián)系人",Toast.LENGTH_SHORT).show();
                    }
                }else if (e1.getX()-e2.getX()<0){
                    //上一頁
                    Intent intent = new Intent(Set_up3.this, Set_up2.class);
                    startActivity(intent);
                    finish();
                    overridePendingTransition(R.anim.up_anim_in,R.anim.up_anim_out);
                }
                return super.onFling(e1, e2, velocityX, velocityY);
            }

重寫ontouchevent方法(這個方法用來捕捉用戶的手勢)
      public boolean onTouchEvent(MotionEvent event) {
        gestureDetector.onTouchEvent(event);
        return super.onTouchEvent(event);
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內(nèi)容