Android開發之監聽發出的短信
運行效果圖:
預備知識:
為了監聽指定的ContentProvider的數據的改變,需要通過ContentResolver向指定Uri注冊CotentObserver監聽器。ContentResolver提供了如下方法來注冊監聽器:
publicfinal void registerContentObserver(Uriuri, boolean notifyForDescendents, ContentObserver observer)
參數:uri :該監聽器所監聽的ContentProvider的Uri。
notifyForDescendents :為false 表示精確匹配,即只匹配該Uri,為true 表示可以同時匹配其派生的Uri。
observer:ContentObserver派生的監聽器實例。
取消注冊監聽器:
public finalvoid unregisterContentObserver(ContentObserver observer)
功能:取消對給定Uri的觀察
參數: observer ContentObserver的派生類實例。
ContentObserver——內容觀察者,目的是觀察(捕捉)特定Uri引起的數據庫的變化,繼而做一些相應的處理,它類似于數據庫技術中的觸發 器(Trigger),當ContentObserver所觀察的Uri發生變化時,便會觸發它。觸發器分為表觸發器、行觸發器,相應地 ContentObserver也分為“表“ContentObserver、“行”ContentObserver,當然這是與它所監聽的Uri MIME Type有
關的。
ContentObserver類介紹:
接收回調的更改內容。必須由被添加到一個ContentObservable對象實現。
構造方法:
Public Constructors </td> </tr> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ContentObserver(Handler handler) onChange() will happen on the provider Handler. |
</tr>
</tbody>
</table>
Public Methods </td> </tr> | ||||||||||||||||||||||||||||||||||||||||||||||||||
boolean |
deliverSelfNotifications() Returns true if this observer is interested in notifications for changes made through the cursor the observer is registered with. |
</tr>
|||||||||||||||||||||||||||||||||||||||||||||||||
final void |
dispatchChange(boolean selfChange) |
</tr>
|||||||||||||||||||||||||||||||||||||||||||||||||
void |
onChange(boolean selfChange) This method is called when a change occurs to the cursor that is being observed. |
</tr>
</tbody>
</table>
字段 </td> |
說明 </td> </tr> | |||||||||||
_id </td> |
短信序號,如100 </td> </tr> | |||||||||||
thread_id </td> |
對話的序號,如100,與同一個手機號互發的短信,其序號是相同的 </td> </tr> | |||||||||||
address </td> |
發件人地址,即手機號,如+86138138000 </td> </tr> | |||||||||||
person </td> |
發件人,如果發件人在通訊錄中則為具體姓名,陌生人為null </td> </tr> | |||||||||||
date </td> |
日期,long型,如1346988516,可以對日期顯示格式進行設置 </td> </tr> | |||||||||||
protocol </td> |
協議0SMS_RPOTO短信,1MMS_PROTO彩信 </td> </tr> | |||||||||||
read </td> |
是否閱讀0未讀,1已讀 </td> </tr> | |||||||||||
status </td> |
短信狀態-1接收,0complete,64pending,128failed </td> </tr> | |||||||||||
type </td> |
短信類型1是接收到的,2是已發出 </td> </tr> | |||||||||||
body </td> |
短信具體內容 </td> </tr> | |||||||||||
service_center </td> |
短信服務中心號碼編號,如+8613800755500 </td> </tr> </tbody> </table>應用實例:相關經驗相關資訊 |