﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-3ant</title><link>http://www.blogjava.net/3ant/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 07:53:09 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 07:53:09 GMT</pubDate><ttl>60</ttl><item><title>android中SMS</title><link>http://www.blogjava.net/3ant/archive/2011/05/20/350655.html</link><dc:creator>3ant</dc:creator><author>3ant</author><pubDate>Thu, 19 May 2011 16:38:00 GMT</pubDate><guid>http://www.blogjava.net/3ant/archive/2011/05/20/350655.html</guid><wfw:comment>http://www.blogjava.net/3ant/comments/350655.html</wfw:comment><comments>http://www.blogjava.net/3ant/archive/2011/05/20/350655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/3ant/comments/commentRss/350655.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/3ant/services/trackbacks/350655.html</trackback:ping><description><![CDATA[1.在Android中，SMS消息传递是由SmsManager进行处理的。可以通过静态方法SmsManager.getDefault()来获得对SmsManager的引用，如下：<br /><br />　　　　SmsManager&nbsp;&nbsp;smsManager = SmsManager..getDefault();<br /><br />2.Android中，要接收和发送SMS需要以下两个权限<br /><br />　　　　&lt;uses-permission android:name="android.permission.READ_SMS" /&gt;&nbsp;&nbsp;<br />　　&nbsp; &nbsp;&nbsp; &nbsp; &lt;uses-permission android:name="android.permission.RECEIVE_SMS" /&gt;<br /><br />3.SMS的发送<br /><br />　　　　1) 发送文本信息，可以使用SMS Manager 中的sendTextManager 的方法<br /><br />　　　　&nbsp; &nbsp;sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)；<br /><br />　　　　&nbsp; &nbsp;参数如下：<br /><br />　　　　　　　　destinationAddress:接收方的手机号码<br /><br />　　　　　　　　scAddress:发送方的手机号码<br /><br />　　　　　　　　text:信息内容<br /><br />　　　　　　　　sentIntent:发送是否成功的回执，会在消息发送成功或者失败后触发。<br /><br />　　　　　　　　DeliveryIntent:接收是否成功的回执，当目标接收人收到你的信息后触发。<br /><br />　　　　2)跟踪和确认SMS消息的发送<br /><br />　　　　　　　　sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)；<br /><br />　　　　　　　　参数sentlntent的返回码如下：<br /><br />　　　　　　　　Activity.RESULT_OK：表示发送成功<br /><br />　　　　　　　　RESULT_ERROR_GENERIC_FAILURE ：表示发生了为指定的错误<br /><br />　　　　　　　　RESULT_ERROR_RADIO_OFF ：表示连接的无线信号被 关闭<br /><br />　　　　　　　　RESULT_ERROR_NULL_PDU：表示PDU错误<br /><br />　　　　3)发送SMS以及监控它的发送过程是否成功的经典示例：<br /><br />　　　　　　　　String SEND_SMS_ACTION = "SENT_SMS_ACTION";<br />&nbsp; &nbsp;　　　　　　　 String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";<br />　　　　　　　&nbsp; &nbsp; //创建senTIntent参数<br />&nbsp; &nbsp; 　　　　　　　Intent sentIntent = new Intent(SEND_SMS_ACTION);<br />&nbsp; &nbsp;　　　　　　　 PendingIntent sentPI = PendingIntent.getBroadcast(getApplicationContext(), 0, sentIntent, 0);<br />&nbsp; &nbsp; 　　　　　　　//创建deliveredIntent参数<br />&nbsp; &nbsp;　　　　　　　 Intent deliveredIntent = new Intent(DELIVERED_SMS_ACTION);<br />&nbsp; &nbsp; 　　　　　　　PendingIntent delivePI = PendingIntent.getBroadcast(getApplicationContext(), 0, deliveredIntent, 0);<br /><br />　　　　　　　　 //注册广播器<br />&nbsp; &nbsp;　　　　　　　 registerReceiver(new BroadcastReceiver(){<br /><br />　　　　　　　　 @Override<br />　　　　　　　&nbsp;&nbsp;public void onReceive(Context context, Intent intent) {<br />　　　　　　　　&nbsp; &nbsp;// TODO Auto-generated method stub<br />&nbsp;&nbsp;　　　　　　　 switch (getResultCode()) {<br />　　　　　　　　　　　&nbsp;&nbsp;case Activity.RESULT_OK:<br />&nbsp; &nbsp;　　　　　　　　　　　　 ....<br />　　　　　　　　　　　&nbsp;&nbsp;case RESULT_ERROR_GENERIC_FAILURE:<br />&nbsp; &nbsp;　　　　　　　　　　　　 ....<br />&nbsp; &nbsp;　　　　　　　　　　　case RESULT_ERROR_RADIO_OFF:<br />&nbsp; &nbsp;　　　　　　　　　　　　 ....<br />　　　　　　　　　　　&nbsp; &nbsp;case RESULT_ERROR_NULL_PDU:<br />&nbsp; &nbsp;　　　　　　　　　　　　 ....<br />　　　　　　　　　　　　&nbsp;&nbsp;}<br />　　　　　　　　　　　 }<br />&nbsp; &nbsp;　　　　　　　　 },<br />&nbsp;&nbsp;　　　　　　　　&nbsp;&nbsp;new IntentFilter(SEND_SMS_ACTION));<br />&nbsp; &nbsp; 　　　　　　　　<br /><br />　　　　　　　　 　　　//注册广播器<br />　　　　　　　　　　　 registerReceiver(new BroadcastReceiver(){<br /><br />&nbsp;&nbsp;　　　　　　　　　　　　@Override<br />　　　　　　　　　　　　 public void onReceive(Context context, Intent intent) {<br />　　　　　　　　　　　　　　　　&nbsp;&nbsp;// TODO Auto-generated method stub<br />&nbsp;&nbsp;　　　　　　　　　　　　　　　　&nbsp;&nbsp;....<br />&nbsp;&nbsp;　　　　　　　　　　　　　　　　 }<br />　　　　　　　　　　　　　 }<br />&nbsp; &nbsp; 　　　　　　　　},<br />&nbsp; &nbsp; 　　　　　　　　new IntentFilter(DELIVERED_SMS_ACTION));<br /><br />　　　　4)保证不超过最大的SMS信息大小<br /><br />　　　　　　　　SMS的大小一般被限制为160个字符，比它大的信息会被分割为多个小的部分。SMS Manager的divideMeaasge方法可　　　　以接收一个字符串作为输入，并把他分割到一个消息的ArrayList中，每一个消息都比允许的最大长度小。使用sendMultipartTextM　　　　essage可以发送消息数组。如下：<br /><br />　　　　　　　　ArrayList&lt;String&gt; messageArray - smsManager.divideMeaasge(myMessage)；<br /><br />　　　　　　　　ArrayList&lt;PendingIntent&gt; sentIntents = new ArrayList&lt;Pendinglntent&gt;();<br /><br />　　　　　　　　for(int i = 0; i &lt; messageArrsy.size(); i ++)<br /><br />　　　　　　　　{<br /><br />　　　　　　　　　　　　sentIntents.add(sentPI);<br /><br />　　　　　　　　　　　　smsManager.sendMultipartTextMessage(sendTo,null,messageArray,sentintent,null);<br /><br />　　　　　　　　}<br /><br />　　　　5)发送数据消息<br /><br />　　　　使用SMS Manager的sendDataMessage方法，可以经由SMS来发送二进制数据。<br /><br />　　　　sendDataMessage与sendTextMessage方法相似，前者需要额外的参数：信息到达的目的端口和由你想发送的数据所组成的一个　　　　字节数组　　　　<br /><br />　　　　short destinationPort = 80;<br /><br />　　　　byte[] data = [...you data ...];<br /><br />　　　　smsManager.sendDataMessage(sendTo,null,destinationPort ,data,sentPI,null);<br /><br />4.SMS的监听<br /><br />　　　　SMS广播Intent包含了收到的SMS的详细信息。要提取封装在SMS广播的SmsManager对象，需要使用PDU密钥来提取一个SMS<br /><br />　　　　pdus数组，其中每一个pdu都表示一条SMS信息。<br /><br />　　　　如下：<br /><br />　　　　Bundle bundle = intent.getExtras();<br /><br />　　　　Object[] pdus = (Object[]) bundle.get("pdus");<br /><br />　　&nbsp; &nbsp;&nbsp; &nbsp; SmsMessage[] msgs = new SmsMessage[pdus.length];<br /><br />　　&nbsp; &nbsp;&nbsp; &nbsp; for (int i = 0; i &lt; pdus.length; i++) {<br /><br />　&nbsp; &nbsp;&nbsp; &nbsp; 　msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);<br /><br />　&nbsp; &nbsp;&nbsp; &nbsp;　}<br /><br />　　　　每一个SMS Manager对象都包含了SMSManager信息的详细内容（电话号码，时间戳，信息体）。<br /><br />　　　　要监听到来的信息，需要使用一个监听android.provider.Telephony.SMS_RECEIVED动作串的Intent Filter 来注册一个广播接收　　　　　器。如下：<br /><br />　　　　final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED动作串的Intent Filter"；　　　　<br /><br />　　　　IntentFilter filter = new IntentFilter(SMS_RECEIVED );<br /><br />　　　　BroadcastReceiver receiver = new IncomingSMSReceiver();<br /><br />　　　　registerReceiver(receiver ,filter);<img src ="http://www.blogjava.net/3ant/aggbug/350655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/3ant/" target="_blank">3ant</a> 2011-05-20 00:38 <a href="http://www.blogjava.net/3ant/archive/2011/05/20/350655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android开发者应该深入学习的10个开源应用项目</title><link>http://www.blogjava.net/3ant/archive/2011/05/19/350604.html</link><dc:creator>3ant</dc:creator><author>3ant</author><pubDate>Thu, 19 May 2011 06:57:00 GMT</pubDate><guid>http://www.blogjava.net/3ant/archive/2011/05/19/350604.html</guid><wfw:comment>http://www.blogjava.net/3ant/comments/350604.html</wfw:comment><comments>http://www.blogjava.net/3ant/archive/2011/05/19/350604.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/3ant/comments/commentRss/350604.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/3ant/services/trackbacks/350604.html</trackback:ping><description><![CDATA[Android开发带来新一轮热潮让很多移动开发者都投入到这个浪潮中去了，创造了许许多多相当优秀的应用。<br />其中也有许许多多的开发者提供了应用开 源项 目，贡献出他们的智慧和创造力。学习开源代码是掌握技术的一<br />个最佳方式。下面推荐几个应用开源项目，这些项目不仅提供了优秀的创意，也可以直接掌握 Android内核的<br />接口使用.<br />1.Android团队提供的示例项目<br />如果不是从学习Android SDK中提供的那些样例代码开始，可能没有更好的方法来掌握在Android这个框架上<br />开发。由Android的核心开发团队提供了15个优秀的示例项目，包含了游戏、图像处理、时间显示、开始菜单<br />快捷方式等。<br />地址：<a href="http://code.google.com/p/apps-for-android/">http://code.google.com/p/apps-for-android/</a><br />2.Remote Droid<br />RemoteDroid是一个Android应用，能够让用户使用自己的无线网络使用无线键盘、触摸屏操作手机。这个项<br />目为开发者提供了如网络连接、触摸屏手指运动等很好的样例。<br />地址：<a href="http://code.google.com/p/remotedroid/">http://code.google.com/p/remotedroid/</a><br />3.TorProxy和Shadow<br />TorProxy应用实现了Android手机无线电电传通讯(TOR)，和Shadow应用一起使用，可以使用手机匿名上网。<br />从该项目源代码中，可以 掌握socket连接、管理cookie等方法。<br />地址：<a href="http://www.cl.cam.ac.uk/research/dtg/code/svn/android-tor/">http://www.cl.cam.ac.uk/research/dtg/code/svn/android-tor/</a><br />4、 Android SMSPopup<br />SMSPopup可以截获短信内容显示在一个泡泡形状的窗口中。从这个项目中可以掌握到如何使用内置的短信<br />SMS接口。<br />地址：<a href="http://code.google.com/p/android-smspopup/">http://code.google.com/p/android-smspopup/</a><br />5、 Standup Timer<br />Standup Timer应用用于控制站立会议时间，类似秒表倒计时，可以提醒每个人的讲话时间已到，从而保证每<br />个与会者使用时间一样。从该项目的代码中，可以学会如何 使用时间函数。另外，这个项目的代码是采用视图<br />view、模型model严格分离的设计思路。<br />地址：<a href="http://github.com/jwood/standup-timer">http://github.com/jwood/standup-timer</a><br />6、 Foursquare<br /><a href="http://www.javaeye.com/news">http://www.javaeye.com/news</a> <br />Foursquare应用主要分为两个模块：API(com.joelapenna.foursquare)和界面前端 (com.joelapenna.foursquared)两部分。从该项目代码中，可以学会如何同步、多线程、HTTP连接等技术。<br />地址：<a href="http://code.google.com/p/foursquared/">http://code.google.com/p/foursquared/</a><br />7、 Pedometer<br />Pedometer应用用于记录你每天走路步[]数的。尽管记录不一定精准，但是从这个项目中，可以学习几个不同<br />的技术：加速器交互、语音更新、后台运行服 务等。<br />地址：<a href="http://code.google.com/p/pedometer/">http://code.google.com/p/pedometer/</a><br />8、 OpenSudoku-android<br />OpenSudoku是一个简单的九宫格数独游戏。从代码中可以学习到如何在视图中显示表格数据，以及如何和一<br />个网站交互等技术。<br />地址：<a href="http://code.google.com/p/opensudoku-android">http://code.google.com/p/opensudoku-android</a><br />9、 ConnectBot<br />ConnectBot是Android平台的一个客户端安全壳应用。从该项目代码中，可以学习到很多Android安全方面的<br />内容，这些是你在开发应用 时经常需要考虑的安全问题。<br />地址：<a href="http://code.google.com/p/connectbot/">http://code.google.com/p/connectbot/</a><br />10、 WordPress的Android应用<br />当然在最后不能不提Wordpress的Android应用了，这是Wordpress官方开发团队提供的一个项目。从代码中<br />可以学习到XMLRPC调 用（当然还有更多的优秀内容）。<br />地址：<a href="http://android.svn.wordpress.org/trunk/">http://android.svn.wordpress.org/trunk/</a><br /><br />注：<u>该文章转自：</u><a href="http://www.opda.cn/2010/08/23/top-10-open-source-android-apps/"><u><font color="#810081">http://www.opda.cn/2010/08/23/top-10-open-source-android-apps/</font></u></a> <img src ="http://www.blogjava.net/3ant/aggbug/350604.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/3ant/" target="_blank">3ant</a> 2011-05-19 14:57 <a href="http://www.blogjava.net/3ant/archive/2011/05/19/350604.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse编码&amp;&amp;其他设置</title><link>http://www.blogjava.net/3ant/archive/2010/01/14/309417.html</link><dc:creator>3ant</dc:creator><author>3ant</author><pubDate>Thu, 14 Jan 2010 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/3ant/archive/2010/01/14/309417.html</guid><wfw:comment>http://www.blogjava.net/3ant/comments/309417.html</wfw:comment><comments>http://www.blogjava.net/3ant/archive/2010/01/14/309417.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/3ant/comments/commentRss/309417.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/3ant/services/trackbacks/309417.html</trackback:ping><description><![CDATA[一、编码设置：<br />
1：对工作区workspace进行编码设置，window--&gt;preferences 设置 如下图：<br />
<img height="544" alt="" src="http://www.blogjava.net/images/blogjava_net/3ant/codeconfig2.JPG" width="707" border="0" /><br />
-------------------------------------<br />
2：对工程project进行编码设置 工程名 右键 properties 设置如下图：<img height="543" alt="" src="http://www.blogjava.net/images/blogjava_net/3ant/codeconfig1.JPG" width="763" border="0" /><br />
-------------------------------------<br />
3：但此时你会发现设置了这两情况之后还是会出现乱码，因为上面这两种方式只是对text类型的文件编码进行了设置。其他的(如jsp)等的编码还是默认的(可能与workspace和project所设置的编码不一样，如ISO-8859-1)。此时，我们需要对内容类型(ContentType)下的各种类型的文件(如jsp、html...)进行设置，window--&gt;preferences 如下图：<br />
<img height="543" alt="" src="http://www.blogjava.net/images/blogjava_net/3ant/codeconfig3.jpg" width="708" border="0" /><br />
-------------------------------------<br />
<br />
二：eclipse 方法自动提示设置：<br />
window--&gt;<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/3ant/s.JPG" border="0" /><br />
<br />
三：相同变量名高亮显示设置：<br />
window--&gt;<br />
<img height="574" alt="" src="http://www.blogjava.net/images/blogjava_net/3ant/s.JPG" width="685" border="0" /><br />
<br />
四：文件默认打开方式设置：<br />
window--&gt;<br />
<a class="postTitle2" id="viewpost1_TitleUrl" href="http://www.blogjava.net/3ant/archive/2010/03/23/316256.html"></a><img alt="" src="http://www.blogjava.net/images/blogjava_net/3ant/a.JPG" border="0" /><br />
<br />
Over.<br />
<br />
<br />
<img src ="http://www.blogjava.net/3ant/aggbug/309417.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/3ant/" target="_blank">3ant</a> 2010-01-14 10:58 <a href="http://www.blogjava.net/3ant/archive/2010/01/14/309417.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>