Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android從無知到有知——NO.5

Android從無知到有知——NO.5

編輯:關於Android編程

今天整一下利用廣播實現ip撥號。

這一塊主要用到的知識是android四大組件之一的broadcast receiver(廣播接收者),那麼它接收什麼東東呢,就是我們所無謂的一個個的事件,比如有外撥電話,低電量提示,來短信等等。那什麼又是ip撥號呢,大家可能有這樣的印象,在撥打長途電話的時候號碼前邊會加上幾位數字,這就是所謂的ip號,這樣打電話比直接撥打會便宜一些。其實ip撥號的原理很簡單,它就是利用前邊說的broadcast receiver監聽到我們所撥打的號碼,然後把它提取出來,在其前邊加上ip號,最後修改成所謂的ip電話號碼,ok,直接上代碼啦......




這個想必大家都很熟悉了,先建一個設置ip號的小界面,規定其只能輸入電話類型的號碼,沒啥難度,直接上效果圖:

\

接下裡就到了比較關鍵的步驟了,再來一塊:

public class MainActivity extends Activity {
    private EditText et_ipnumber;
    private SharedPreferences sp;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		et_ipnumber=(EditText)findViewById(R.id.et_ipnumber);
		sp=getSharedPreferences("config", MODE_PRIVATE);
		et_ipnumber.setText(sp.getString("ipnumber", ""));
	}
	@SuppressLint("ShowToast")
	public void click(View view){
		String ipnumber=et_ipnumber.getText().toString().trim();
		Editor editor=sp.edit();
		editor.putString("ipnumber", ipnumber);
		editor.commit();
		Toast.makeText(this,"設置完畢", 0).show();
	}
}


首先我們通過id找到設置好的ip號,把它賦給ipnumber,得到號碼以後我們需要把它存起來,這樣下次再進去的時候這個號碼還會顯示,用到的是SharedPreferences,它是一個輕量級應用程序內部輕量級的存儲方案,特別適合用於保存軟件配置參數。getSharedPreferences有兩個參數,第一個參數是存儲時的名稱,第二個參數則是文件的打開方式;然後sp調用它的方法的得到一個編輯器editor,將數據保存至SharedPreferences,別忘了用commit()方法提交,拿到這個數據之後就把它返給et_ipnumber的文本中,這樣一個基礎的ip撥號設置器就完成了。

布局完成了,接下來就要干活了,去監聽外撥電話然後將其修改成ip號碼的形式。

我們需要建一個java類,繼承Broadcast receiver,上代碼:

public class OutCall extends BroadcastReceiver {	
	@Override
	public void onReceive(Context context, Intent intent) {
		System.out.println("發現一個外撥電話");
		String number=getResultData();
		System.out.println("這是外撥電話的號碼");//得到外撥電話號碼
		//替換號碼
		SharedPreferences sp =context.getSharedPreferences("config", context.MODE_PRIVATE);
		String ipnumber=sp.getString("ipnumber", "");
		String newnumber=ipnumber+number;
		//得到新的外撥號碼
		setResultData(newnumber);
	}      
}


當有一個外撥電話時它便會調用onReceive方法(關於這個方法和相關知識的補充放到下一篇),我們還可以把監聽到的電話號碼顯示出來,然後將其和設置好的ip號相加得到最終的ip電話號碼。上機上效果圖吧:

\\

我給自己打的電話,前邊加上了設置好的ip號1234,ok,大體就是這樣,下一篇說說這個小例子裡邊出現的一些問題還有一些必要的附帶知識,先這樣。

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