Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android簡易實戰教程--第二十話《通過廣播接收者,對撥打電話外加ip號》

Android簡易實戰教程--第二十話《通過廣播接收者,對撥打電話外加ip號》

編輯:關於Android編程

沒睡著覺,起來更篇文章吧哈哈!首先祝賀李宗偉擊敗我丹,雖然我是支持我丹的,但是他也不容易哈哈,值得尊敬的人!切入正題:這一篇來介紹個自定義廣播接收者。

通常我們在外撥電話的時候,一般為使用網絡電話。如果電話號碼是某種類型的電話,會自動在前面加上ip號。從而節省費用。今天這一篇就模擬ip撥號。這個功能,是通過廣播接收者來實現的。自定義廣播接收者,“監聽”外撥電話時候系統發出的廣播(系統對我們注冊的廣播大喊:“親愛的,我來了!”),收到信息後,給外撥電話前綴價格ip號碼。

先給個activity布局:

 



    
EditText用於輸入我們要加入的ip號;Button就保存這個號

 

注冊自定義廣播(配置文件注冊):

 

        
            
                      
package com.itydl.ipdialer;
 
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
 
public class CallReceiver extends BroadcastReceiver {
 
    //接收到廣播時就會調用
    @Override
    public void onReceive(Context context, Intent intent) {
        //添加IP線路
        //在打電話廣播中,會攜帶撥打的電話的號碼,通過以下代碼獲取到
        String number = getResultData();
         
        if(number.startsWith("0")){
            SharedPreferences sp = context.getSharedPreferences("ip", Context.MODE_PRIVATE);
            String ipNumber = sp.getString("ipNumber", "");
             
            //把IP線路號碼添加至用戶撥打號碼的前面
            number = ipNumber + number;
             
            //把新的號碼重新放入廣播中,此時撥出去的號碼前面加上了我們定義的ip號
            setResultData(number);
             
            abortBroadcast();
        }
         
    }
 
}

上邊把廣播接收者寫了出來,先提取我們保存的ip號,再給號碼加入前綴,再把最後的號碼給外撥號中顯示。

看一下主活動上的代碼:

package com.itydl.ipdialer;
 
import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
 
    public void click(View v){
        EditText et = (EditText) findViewById(R.id.et);
        SharedPreferences sp = getSharedPreferences("ip", MODE_PRIVATE);
        sp.edit().putString("ipNumber", et.getText().toString()).commit();
    }
     
}

記得有一個權限要加入:

運行看看效果:

\


再看外撥電話:


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved