編輯:關於Android編程
廣播
Android中:系統在運行的過程中,會產生很多的事件,比如:電量的改變,收發短信,撥打電話,屏幕解鎖,開機等,系統都會發送相應的廣播,系統根據發送的廣播來判斷相應的事件並執行相應的代碼,使用廣播接收著就可以收聽廣播。
廣播接收者
廣播接收者簡單地說就是接收廣播意圖的Java類,此Java類繼承BroadcastReceiver類,重寫:
public void onReceive(Context context,Intent intent),其中intent可以獲得傳遞的數據;
廣播意圖就是通過Context.sendBroadcast(Intent intent)或Context.sendOrderedBroadcast(Intent intent)發送的意圖,通過這個語句,能夠廣播給所有滿足條件的組件,比如intent設置了action="android.intent.action.NEW_OUTGOING_CALL",則所有在AndroidManifest.xml中設置過的廣播接收者都能夠接收到廣播;
創建廣播接收者
1.定義java類繼承BroadcasterReceiver
2.在清單文件愛你中定義receiver節點,定義name屬性,指定廣播接受著java類的全類名
3.在intent-filter的節點中,指定action子節點,action的值必須跟要接受的廣播中的action匹配,比如,如果要接收打電話廣播,那麼action的值
action="android.intent.action.NEW_OUTGOING_CALL",因為打電話廣播中包含的值就是這個,定義廣播接收者的時候必須action必須與其匹配,才能接收到這個廣播
4.即使廣播接收者所在的進程已經被關閉,當系統發出的廣播中的action跟該廣播接收者的action匹配的時候,系統會啟動該廣播接收者所在的進程,並把廣播發給該廣播接收者
配置權限:
清單文件配置廣播(和activity是同級節點):
activity_main.xml
MainActivity.java
package com.ldw.ipdialer;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
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);
//ip保存在本地
SharedPreferences sp = getSharedPreferences("ip", MODE_PRIVATE);
sp.edit().putString("ipNumber", et.getText().toString()).commit();
}
}
package com.ldw.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) {
// TODO Auto-generated method stub
System.out.println("打電話廣播");
//打電話廣播中會攜帶撥打電話的號碼
String number = getResultData();
//獲取到SharedPreferences保存的值
SharedPreferences sp = context.getSharedPreferences("ip", Context.MODE_PRIVATE);
String ipNumber = sp.getString("ipNumber", "");
//ip線路號碼添加到用戶號碼的前面
number = ipNumber + number;
//把新的號碼重新放到廣播中
setResultData(number);
}
}
Android開發之使用MediaRecorder錄制視頻
MediaRecorder除了可以用於錄制音頻,還可用於錄制視頻。關於MediaRecorder的詳解大家可以參考《Android開發之MediaRecorder類詳解》
[Android]egit取消文件版本控制
開發項目,多人合作開發變得越來越重要了,在此同時,使用git作為協同工具也是越來越多,在此,介紹一下egit取消文件版本控制的方法。(egit即為eclipse中的git
Android打造屬於自己的數據庫操作類。
1、概述開發Android的同學都知道sdk已經為我們提供了一個SQLiteOpenHelper類來創建和管理SQLite數據庫,通過寫一個子類去繼承它,就可以方便的創建
android 支持分組和聯系人展示的一個小例子
先看效果圖: @Override public void onCreate(Bundle savedInstanceState) { super.onC