隨筆 - 3  文章 - 1  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          1.在Android中,SMS消息傳遞是由SmsManager進行處理的。可以通過靜態(tài)方法SmsManager.getDefault()來獲得對SmsManager的引用,如下:

              SmsManager  smsManager = SmsManager..getDefault();

          2.Android中,要接收和發(fā)送SMS需要以下兩個權限

              <uses-permission android:name="android.permission.READ_SMS" />  
                   <uses-permission android:name="android.permission.RECEIVE_SMS" />

          3.SMS的發(fā)送

              1) 發(fā)送文本信息,可以使用SMS Manager 中的sendTextManager 的方法

                 sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent);

                 參數(shù)如下:

                  destinationAddress:接收方的手機號碼

                  scAddress:發(fā)送方的手機號碼

                  text:信息內(nèi)容

                  sentIntent:發(fā)送是否成功的回執(zhí),會在消息發(fā)送成功或者失敗后觸發(fā)。

                  DeliveryIntent:接收是否成功的回執(zhí),當目標接收人收到你的信息后觸發(fā)。

              2)跟蹤和確認SMS消息的發(fā)送

                  sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent);

                  參數(shù)sentlntent的返回碼如下:

                  Activity.RESULT_OK:表示發(fā)送成功

                  RESULT_ERROR_GENERIC_FAILURE :表示發(fā)生了為指定的錯誤

                  RESULT_ERROR_RADIO_OFF :表示連接的無線信號被 關閉

                  RESULT_ERROR_NULL_PDU:表示PDU錯誤

              3)發(fā)送SMS以及監(jiān)控它的發(fā)送過程是否成功的經(jīng)典示例:

                  String SEND_SMS_ACTION = "SENT_SMS_ACTION";
                     String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";
                     //創(chuàng)建senTIntent參數(shù)
                     Intent sentIntent = new Intent(SEND_SMS_ACTION);
                     PendingIntent sentPI = PendingIntent.getBroadcast(getApplicationContext(), 0, sentIntent, 0);
                     //創(chuàng)建deliveredIntent參數(shù)
                     Intent deliveredIntent = new Intent(DELIVERED_SMS_ACTION);
                     PendingIntent delivePI = PendingIntent.getBroadcast(getApplicationContext(), 0, deliveredIntent, 0);

                   //注冊廣播器
                     registerReceiver(new BroadcastReceiver(){

                   @Override
                   public void onReceive(Context context, Intent intent) {
                     // TODO Auto-generated method stub
                    switch (getResultCode()) {
                       case Activity.RESULT_OK:
                          ....
                       case RESULT_ERROR_GENERIC_FAILURE:
                          ....
                        case RESULT_ERROR_RADIO_OFF:
                          ....
                        case RESULT_ERROR_NULL_PDU:
                          ....
                        }
                      }
                      },
                      new IntentFilter(SEND_SMS_ACTION));
                      

                      //注冊廣播器
                      registerReceiver(new BroadcastReceiver(){

                        @Override
                       public void onReceive(Context context, Intent intent) {
                            // TODO Auto-generated method stub
                              ....
                             }
                        }
                      },
                      new IntentFilter(DELIVERED_SMS_ACTION));

              4)保證不超過最大的SMS信息大小

                  SMS的大小一般被限制為160個字符,比它大的信息會被分割為多個小的部分。SMS Manager的divideMeaasge方法可    以接收一個字符串作為輸入,并把他分割到一個消息的ArrayList中,每一個消息都比允許的最大長度小。使用sendMultipartTextM    essage可以發(fā)送消息數(shù)組。如下:

                  ArrayList<String> messageArray - smsManager.divideMeaasge(myMessage);

                  ArrayList<PendingIntent> sentIntents = new ArrayList<Pendinglntent>();

                  for(int i = 0; i < messageArrsy.size(); i ++)

                  {

                      sentIntents.add(sentPI);

                      smsManager.sendMultipartTextMessage(sendTo,null,messageArray,sentintent,null);

                  }

              5)發(fā)送數(shù)據(jù)消息

              使用SMS Manager的sendDataMessage方法,可以經(jīng)由SMS來發(fā)送二進制數(shù)據(jù)。

              sendDataMessage與sendTextMessage方法相似,前者需要額外的參數(shù):信息到達的目的端口和由你想發(fā)送的數(shù)據(jù)所組成的一個    字節(jié)數(shù)組    

              short destinationPort = 80;

              byte[] data = [...you data ...];

              smsManager.sendDataMessage(sendTo,null,destinationPort ,data,sentPI,null);

          4.SMS的監(jiān)聽

              SMS廣播Intent包含了收到的SMS的詳細信息。要提取封裝在SMS廣播的SmsManager對象,需要使用PDU密鑰來提取一個SMS

              pdus數(shù)組,其中每一個pdu都表示一條SMS信息。

              如下:

              Bundle bundle = intent.getExtras();

              Object[] pdus = (Object[]) bundle.get("pdus");

                   SmsMessage[] msgs = new SmsMessage[pdus.length];

                   for (int i = 0; i < pdus.length; i++) {

                   msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);

                  }

              每一個SMS Manager對象都包含了SMSManager信息的詳細內(nèi)容(電話號碼,時間戳,信息體)。

              要監(jiān)聽到來的信息,需要使用一個監(jiān)聽android.provider.Telephony.SMS_RECEIVED動作串的Intent Filter 來注冊一個廣播接收     器。如下:

              final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED動作串的Intent Filter";    

              IntentFilter filter = new IntentFilter(SMS_RECEIVED );

              BroadcastReceiver receiver = new IncomingSMSReceiver();

              registerReceiver(receiver ,filter);
          posted @ 2011-05-20 00:38 3ant 閱讀(1941) | 評論 (0)編輯 收藏
          Android開發(fā)帶來新一輪熱潮讓很多移動開發(fā)者都投入到這個浪潮中去了,創(chuàng)造了許許多多相當優(yōu)秀的應用。
          其中也有許許多多的開發(fā)者提供了應用開 源項 目,貢獻出他們的智慧和創(chuàng)造力。學習開源代碼是掌握技術的一
          個最佳方式。下面推薦幾個應用開源項目,這些項目不僅提供了優(yōu)秀的創(chuàng)意,也可以直接掌握 Android內(nèi)核的
          接口使用.
          1.Android團隊提供的示例項目
          如果不是從學習Android SDK中提供的那些樣例代碼開始,可能沒有更好的方法來掌握在Android這個框架上
          開發(fā)。由Android的核心開發(fā)團隊提供了15個優(yōu)秀的示例項目,包含了游戲、圖像處理、時間顯示、開始菜單
          快捷方式等。
          地址:http://code.google.com/p/apps-for-android/
          2.Remote Droid
          RemoteDroid是一個Android應用,能夠讓用戶使用自己的無線網(wǎng)絡使用無線鍵盤、觸摸屏操作手機。這個項
          目為開發(fā)者提供了如網(wǎng)絡連接、觸摸屏手指運動等很好的樣例。
          地址:http://code.google.com/p/remotedroid/
          3.TorProxy和Shadow
          TorProxy應用實現(xiàn)了Android手機無線電電傳通訊(TOR),和Shadow應用一起使用,可以使用手機匿名上網(wǎng)。
          從該項目源代碼中,可以 掌握socket連接、管理cookie等方法。
          地址:http://www.cl.cam.ac.uk/research/dtg/code/svn/android-tor/
          4、 Android SMSPopup
          SMSPopup可以截獲短信內(nèi)容顯示在一個泡泡形狀的窗口中。從這個項目中可以掌握到如何使用內(nèi)置的短信
          SMS接口。
          地址:http://code.google.com/p/android-smspopup/
          5、 Standup Timer
          Standup Timer應用用于控制站立會議時間,類似秒表倒計時,可以提醒每個人的講話時間已到,從而保證每
          個與會者使用時間一樣。從該項目的代碼中,可以學會如何 使用時間函數(shù)。另外,這個項目的代碼是采用視圖
          view、模型model嚴格分離的設計思路。
          地址:http://github.com/jwood/standup-timer
          6、 Foursquare
          http://www.javaeye.com/news
          Foursquare應用主要分為兩個模塊:API(com.joelapenna.foursquare)和界面前端 (com.joelapenna.foursquared)兩部分。從該項目代碼中,可以學會如何同步、多線程、HTTP連接等技術。
          地址:http://code.google.com/p/foursquared/
          7、 Pedometer
          Pedometer應用用于記錄你每天走路步[]數(shù)的。盡管記錄不一定精準,但是從這個項目中,可以學習幾個不同
          的技術:加速器交互、語音更新、后臺運行服 務等。
          地址:http://code.google.com/p/pedometer/
          8、 OpenSudoku-android
          OpenSudoku是一個簡單的九宮格數(shù)獨游戲。從代碼中可以學習到如何在視圖中顯示表格數(shù)據(jù),以及如何和一
          個網(wǎng)站交互等技術。
          地址:http://code.google.com/p/opensudoku-android
          9、 ConnectBot
          ConnectBot是Android平臺的一個客戶端安全殼應用。從該項目代碼中,可以學習到很多Android安全方面的
          內(nèi)容,這些是你在開發(fā)應用 時經(jīng)常需要考慮的安全問題。
          地址:http://code.google.com/p/connectbot/
          10、 WordPress的Android應用
          當然在最后不能不提Wordpress的Android應用了,這是Wordpress官方開發(fā)團隊提供的一個項目。從代碼中
          可以學習到XMLRPC調(diào) 用(當然還有更多的優(yōu)秀內(nèi)容)。
          地址:http://android.svn.wordpress.org/trunk/

          注:該文章轉(zhuǎn)自:http://www.opda.cn/2010/08/23/top-10-open-source-android-apps/
          posted @ 2011-05-19 14:57 3ant 閱讀(377) | 評論 (0)編輯 收藏
          一、編碼設置:
          1:對工作區(qū)workspace進行編碼設置,window-->preferences 設置 如下圖:

          -------------------------------------
          2:對工程project進行編碼設置 工程名 右鍵 properties 設置如下圖:
          -------------------------------------
          3:但此時你會發(fā)現(xiàn)設置了這兩情況之后還是會出現(xiàn)亂碼,因為上面這兩種方式只是對text類型的文件編碼進行了設置。其他的(如jsp)等的編碼還是默認的(可能與workspace和project所設置的編碼不一樣,如ISO-8859-1)。此時,我們需要對內(nèi)容類型(ContentType)下的各種類型的文件(如jsp、html...)進行設置,window-->preferences 如下圖:

          -------------------------------------

          二:eclipse 方法自動提示設置:
          window-->


          三:相同變量名高亮顯示設置:
          window-->


          四:文件默認打開方式設置:
          window-->


          Over.


          posted @ 2010-01-14 10:58 3ant 閱讀(986) | 評論 (0)編輯 收藏
          僅列出標題  

          沒有熱愛,何來成就

          主站蜘蛛池模板: 富顺县| 美姑县| 修水县| 堆龙德庆县| 沈丘县| 泗水县| 和平县| 陆河县| 彰化市| 彭泽县| 余干县| 祁东县| 和硕县| 清水河县| 惠东县| 定安县| 吉木乃县| 四子王旗| 五峰| 南皮县| 寿阳县| 曲麻莱县| 肥乡县| 吴堡县| 儋州市| 八宿县| 沾化县| 陈巴尔虎旗| 宽甸| 迭部县| 淮南市| 新津县| 淅川县| 长泰县| 青龙| 门头沟区| 绍兴县| 隆回县| 定日县| 五家渠市| 东阿县|