鄙人想開發一個來電來信閃光的軟件。網上這兩個廣播事件講的不清不楚的。請大神告訴我,還有相應的權限
Android中電話通信的簡單流程
使用代碼撥打電話
1>創建隱式意圖
Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:13555555555"));
2>啟動Activity
context.startActivity(intent);
3>添加撥打電話的權限
android.permission.CALL_PHONE
如何監聽呼入電話
1> 編寫一個類,擴展自PhoneStateListener。
2>獲取系統服務:TelephonyManager
3>調用manager.listen()方法開始監聽電話狀態。
4>添加權限:
android.permission.READ_PHONE_STATE
監聽呼出電話:
1>創建廣播接收器接收系統廣播:
Intent.ACTION_NEW_OUTGING_CALL
2>在onReceive方法中處理廣播
3>把廣播接收器在清單文件中注冊。
4>添加權限
攔截電話的呼入
Service綁定:
客戶端:
conn=new ServiceConnection(){
serviceConnected(, IBinder binder){
MyBinder b=(....)binder;
}
serviceDisConnected(){}
};
bindService(intent, conn, flags);
Android中短信的收發機制與簡單流程
代碼發送短消息
1>獲取發送短信的系統服務:
SmsManager manager=SmsManager.getDefault();
2>調用sendTextMessage方法發送短信
manager.sendTextMessage(
number, null, body, null, null);
3>添加權限
android.permission.SEND_SMS
manager.sendTextMessage(
number, null, body,
sentIntent, 當短信發送後執行該PendingIntent
deliveryIntent 對方是否成功接收PendingIntent
);
提示短信是否發送成功
sentIntent
提示短信對方成功接收
deliveryIntent
發送字數超過限制的短消息
ArrayList bodies=SmsManger.divideMessage(text);
for(int i=0; i
String body=bodies.get(i);
sendTextMessage();
}
使用代碼接收、攔截短消息
1>編寫廣播接收器接收系統廣播:
android.provider.Telephony.SMS_RECEIVED
2>注冊
3>添加攔截短信的系統權限