freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android平臺下的名片冊管理系統(tǒng)(已改無錯字)

2022-10-20 12:30:52 本頁面
  

【正文】 過 SMS(短消息服務(wù))來傳輸?shù)摹?SMS 是一種存儲和轉(zhuǎn)發(fā)服務(wù)。也就是說,短消息并不是直接從發(fā)送人發(fā)送到接收人,而始終通過 SMS 中心進行轉(zhuǎn)發(fā)。現(xiàn)在越來越多的應(yīng)用采用 SMS 作為與用戶進行數(shù)據(jù)交換的方式,會考慮使用 SMS 作為數(shù)據(jù)分發(fā)平臺。 Android API 支持開發(fā)可以發(fā)送和接收 SMS 消息的應(yīng)用程序。為了發(fā)送一個 SMS 消息,需要使用 SmsManager 類,不需要直接實例化這個類,取而代之的是調(diào)用 getDefault()靜態(tài)方法來獲取一個 SmsManager 對象。通過 SmsManager 來實現(xiàn)短信的發(fā)送。 具體發(fā)送的流程圖設(shè)計如圖 41。 基于 Adnroid 平臺下的名片冊管理系統(tǒng) 15 圖 41發(fā)送模塊流程圖 發(fā)送名片的關(guān)鍵步驟的實現(xiàn)可分為以下幾步: 。由于要發(fā)送的名片是“我的名片”,所以要從數(shù)據(jù)庫中取出“我的名片”的信息。信息包括,姓名,手機,公司等一系列屬性。實現(xiàn)的方法是在 CardInfo 表中查詢 CardGroup 屬性等于“我的名片”的一列值。具體實現(xiàn)代碼如下。 public Cursor queryMyCardInfo() { mydb = ()。 Cursor c = (QUERYMYCARDSQL, new String[] { 我的名片 })。 return c。 } if (()) { theName = ((name))。 thePhoneNum = ((phoneNum))。 theCompName = ((pName))。 theTelePhoneNum =((telePhoneNum))。 theTitle = ((title))。 theSection = ((section))。 theAddress = ((address))。 thePostCode = ((postCode))。 theCardGroup = ((cardGroup))。 } 基于 Adnroid 平臺下的名片冊管理系統(tǒng) 16 信息從數(shù)據(jù)庫中取出之后,把取出來的各個屬性按照特定的方式加密,連接成一個字符串。從而易于發(fā)送。加密規(guī)則用以下代碼實現(xiàn)。 sendMessage = @* + + theName + + thePhoneNum + + theCompName + + theTelePhoneNum + + theTitle + + theSection + + theAddress + + thePostCode 。 。 SMSManager 類中的 divideMessage()方法,它可以接收一個字符串作為輸入,并且把它分割到一個消息的 ArrayList 中,其中的每一個消息都比允許的長度小 [10],這樣就不用 擔(dān)心超過允許短信發(fā)送的長度的最大值了。主要實現(xiàn)代碼如下。 public void onClick(DialogInterface dialog, int which) { SmsManager myManager = ()。 String num = ().toString()。 ArrayListString msg = (sendMessage)。 (num, null,msg, null, null)。 } 實現(xiàn)完成的界面為圖 42 所示。 圖 42發(fā)送名片用戶界面圖 接 收 名 片 模 塊 的 設(shè) 計 與 實 現(xiàn) 接收名片需要從所接受到的短信中分離出名片各個屬性,接受名片的設(shè)計流程圖如圖 43 所示。 基于 Adnroid 平臺下的名片冊管理系統(tǒng) 17 圖 43接收模塊流程圖 接收名片的關(guān)鍵步驟的實現(xiàn)可分為以下幾步: ,該廣播監(jiān)聽器專門負(fù)責(zé)監(jiān)聽收到短信動作。當(dāng)然,還需要在應(yīng)用程序清單上添加一個 usespermission 標(biāo)簽,從而可以請求這個權(quán)限。當(dāng)設(shè)備接收到一個新的 SMS 消息時,就會觸發(fā)一個新的廣播 Intent,包含了收到的 SMS的詳細信息,要提取封裝在 SMS 廣播 Intent 中的 SmsMessage 對象,需要使用 pdu 密鑰來提取一 SMSpdus 數(shù)組,其中每個 pdu 都表示 一條 SMS 消息。然后調(diào)用,并傳遞給它每一個字節(jié)數(shù)組 [11]。 。檢驗的規(guī)則是查看每一個短信的開頭部分是不是按照該程序的加密規(guī)則實現(xiàn)了加密。如果不是, 則說明該短信沒有包含名片信息,即不是該程序所需要的短信,則程序?qū)Υ藳]有操作;如果是的話,則說明該短信確實是程序所需要處理的短信,則程序會對此短信進行一系列操作。 ,程序首先獲取該短信所包含的字符串。然后按照一定的規(guī)則把該字符串分割成一個字符數(shù)組(用 ()方法分割 )。每個字符數(shù)組代表這一個特定的名片屬性,比如說姓名,電話,公司等內(nèi)容。 ,從而完成接受短信的功能。 具體實現(xiàn)關(guān)鍵代碼如下。 public void onReceive(Context arg0, Intent arg1) { Bundle myBundle = ()。 基于 Adnroid 平臺下的名片冊管理系統(tǒng) 18 Object[] messages = (Object[]) (pdus)。 SmsMessage[] smsMessages = new SmsMessage[]。 for(int n = 0。 n 。 n++){ smsMessages[n] = ((byte[])messages[n])。 String myMessage = smsMessages[n].getMessageBody()。 if((@*)) { /*查看短信是否是以特定的字符串開頭 */ data = ()。 theName = data[1]。 thePhoneNum = data[2]。 theCompName = data[3]。 theTelePhoneNum = data[4]。 theTitle = data[5]。 theSection = data[6]。 theAddress = data[7]。 thePostCode = data[8]。 theCardGroup = myfriend。 (name, theName)。 (phoneNum, thePhoneNum)。 (telePhoneNum, theCompName)。 (pName, theTelePhoneNum)。 (title, theTitle)。 (section, theSection)。 (address,theAddress)。 (postCode, thePostCode)。 (cardGroup, theCardGroup)。 (cardGroup, theCardGroup)。 DBHelper myHelper = new DBHelper(arg0)。 (values1, values2)。} } } 實現(xiàn)之后的界面如圖 44 所示。 圖 44接收名片界面流程圖 基于 Adnroid 平臺下的名片冊管理系統(tǒng) 19 名 片 夾 模 塊 的 設(shè) 計 與 實 現(xiàn) 名片夾的實現(xiàn)需要兩次搜索,并且后一次的搜索條件是需要用到前一次的搜索結(jié)果,這樣才能實現(xiàn)名片夾那種樹狀的組織層次。名片夾模塊的設(shè)計流程圖如圖 45 所示。 圖 45名片夾模塊流程圖 名片夾模塊的關(guān)鍵步驟的實現(xiàn)可分為以下幾步: ,也就是名片的分組信息。這次查詢是在CardGroupInfo 表中實現(xiàn)的。這里要說明的是,由于 Android 并不支持 distinct 查詢,所以若在 CardInfo 中查詢 Cardgroup 列是無法實現(xiàn)的。所以解決的方案是再建立一個表 —— CardGroupInfo 表。該表中的 Cardgroup 列是 unquie 的 [12]。所以查詢的結(jié)果不會有重復(fù)值。主要代碼如下。 private static final String QUERYGROUPSQL = select * from + TBLNAME2。 public Cursor queryGroupInfo() { mydb = ()。 Cursor c = (QUERYGROUPSQL, null)。 return c。 } ,并用字符串儲存起來,然后開始實基于 Adnroid 平臺下的名片冊管理系統(tǒng) 20 現(xiàn)第二次查詢,實現(xiàn)第二次查詢的函數(shù)是一個回調(diào)函數(shù) [13]。實現(xiàn)的 代碼如下。 protected Cursor getChildrenCursor(Cursor groupCursor) { String[] str = new String[1]。 str[0] = (groupCursor .getColumnIndex(cardGroup))。 // 從第一次查詢中取出結(jié)果, 賦值 給字符串 return (str)。 } public Cursor queryChildInfo(String[] args) { mydb = ()。 Cursor c = (QUERYCHILDSQL, args)。 ()。 return c。 } SimpleCursorTreeAdapter上面,從而實現(xiàn)兩層查詢。 SimpleCursorTreeAdapter繼承于 ResourceCursorTreeAdapter類,是一個用起來很方 便的適配器類,它提供把 cursor的數(shù)據(jù)綁定到 Group和 child的布局文件中的控件的功能。綁定的控件只能是 TextView和 ImageView,為 cursor和 ExpandableListView提供了連接的橋梁。 主要代碼如下 。 protected void onCreate(Bundle savedInstanceState) { (savedInstanceState)。 setContentView()。 theELView = ()。 myDBHelper = new DBHelper()。 cur = ()。 String[] str1 = { cardGroup }。 String[] str2 = { name, phoneNum }。 int[] int1 = { }。 int[] int2 = { , }。 (new mySimpleCursorTreeAdapter(cur, str1, int1, str2, int2))。 //實現(xiàn)在 SimpleCursorTreeAdapter上的綁定。 class mySimpleCursorTreeAdapter extends SimpleCursorTreeAdapter { public mySimpleCursorTreeAdapter(Cursor cursor, String[] groupFrom, int[] groupTo, String[] childFrom, int[] childTo) { super(, cursor, , groupFrom, groupTo, , childFrom, childTo)。 } } } 文件夾模塊實現(xiàn)之后的界面如圖 46 所示。 基于 Adnroid
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1