- 浏览: 31504 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
jameslin_2011:
以为是源码。。。
微媒-腾讯微博开放平台应用 发布新版本了(2012.05.04更新) -
hbxflihua:
很不错,不过貌似少了些东西。比如你实现 OnClickList ...
Android拍照、录像、录音代码范例 -
androidzjb:
谢谢分享,
Android拍照、录像、录音代码范例 -
liu_jun_y:
自己每次项目完后都想总结下,但总是推。。。。
【转载】开发经验总结,很受用。 -
379548695:
问下楼主。是基于哪个版本开发的。我导入之后sdk选1.4.,1 ...
Tab的多种典型用法总结(带动画)
一段完整的Android平台上短信功能的接口源码,利用扩展的API可以通过js实现如下功能:
1. getContentUris():读取短信相关的所有数据库表的Uri地址;
2. get(int number):读取若干条短信;
3. getUnread(int number):读取若干条未读短信;
4. getRead(int number):读取若干条已读短信;
5. getInbox(int number):从收件箱读取若干条短信;
6. getSent(int number):读取若干条已发短信;
7. getByThread(int threadID):读取会话中所有短信;
8. getThreads(int number):读取若干条会话;
9. getData(String selection, int number):根据条件读取若干条短信。
1. getContentUris():读取短信相关的所有数据库表的Uri地址;
2. get(int number):读取若干条短信;
3. getUnread(int number):读取若干条未读短信;
4. getRead(int number):读取若干条已读短信;
5. getInbox(int number):从收件箱读取若干条短信;
6. getSent(int number):读取若干条已发短信;
7. getByThread(int threadID):读取会话中所有短信;
8. getThreads(int number):读取若干条会话;
9. getData(String selection, int number):根据条件读取若干条短信。
/* * Copyright (C) 2011 The Rexsee Open Source Project * * Licensed under the Rexsee License, Version 1.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.rexsee.com/CN/legal/license.html * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package rexsee.communication; import rexsee.core.browser.JavascriptInterface; import rexsee.core.browser.RexseeBrowser; import rexsee.core.utilities.Escape; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.net.Uri; public class RexseeSMS implements JavascriptInterface { private static final String INTERFACE_NAME = "SMS"; @Override public String getInterfaceName() { return mBrowser.application.resources.prefix + INTERFACE_NAME; } @Override public JavascriptInterface getInheritInterface(RexseeBrowser childBrowser) { return this; } @Override public JavascriptInterface getNewInterface(RexseeBrowser childBrowser) { return new RexseeSMS(childBrowser); } public static final String CONTENT_URI_SMS = "content://sms"; public static final String CONTENT_URI_SMS_INBOX = "content://sms/inbox"; public static final String CONTENT_URI_SMS_SENT = "content://sms/sent"; public static final String CONTENT_URI_SMS_CONVERSATIONS = "content://sms/conversations"; public static String[] SMS_COLUMNS = new String[]{ "_id", //0 "thread_id", //1 "address", //2 "person", //3 "date", //4 "body", //5 "read", //6; 0:not read 1:read; default is 0 "type", //7; 0:all 1:inBox 2:sent 3:draft 4:outBox 5:failed 6:queued "service_center" //8 }; public static String[] THREAD_COLUMNS = new String[]{ "thread_id", "msg_count", "snippet", }; private final Context mContext; private final RexseeBrowser mBrowser; public RexseeSMS(RexseeBrowser browser) { mBrowser = browser; mContext = browser.getContext(); } //JavaScript Interface public String getContentUris() { String rtn = "{"; rtn += "\"sms\":\"" + CONTENT_URI_SMS + "\""; rtn += ",\"inbox\":\"" + CONTENT_URI_SMS_INBOX + "\""; rtn += ",\"sent\":\"" + CONTENT_URI_SMS_SENT + "\""; rtn += ",\"conversations\":\"" + CONTENT_URI_SMS_CONVERSATIONS + "\""; rtn += "}"; return rtn; } public String get(int number) { return getData(null, number); } public String getUnread(int number) { return getData("type=1 AND read=0", number); } public String getRead(int number) { return getData("type=1 AND read=1", number); } public String getInbox(int number) { return getData("type=1", number); } public String getSent(int number) { return getData("type=2", number); } public String getByThread(int thread) { return getData("thread_id=" + thread, 0); } public String getData(String selection, int number) { Cursor cursor = null; ContentResolver contentResolver = mContext.getContentResolver(); try { if (number > 0) { cursor = contentResolver.query(Uri.parse(CONTENT_URI_SMS), SMS_COLUMNS, selection, null, "date desc limit " + number); } else { cursor = contentResolver.query(Uri.parse(CONTENT_URI_SMS), SMS_COLUMNS, selection, null, "date desc"); } if (cursor == null || cursor.getCount() == 0) return "[]"; String rtn = ""; for (int i = 0; i < cursor.getCount(); i++) { cursor.moveToPosition(i); if (i > 0) rtn += ","; rtn += "{"; rtn += "\"_id\":" + cursor.getString(0); rtn += ",\"thread_id\":" + cursor.getString(1); rtn += ",\"address\":\"" + cursor.getString(2) + "\""; rtn += ",\"person\":\"" + ((cursor.getString(3) == null) ? "" : cursor.getString(3)) + "\""; rtn += ",\"date\":" + cursor.getString(4); rtn += ",\"body\":\"" + Escape.escape(cursor.getString(5)) + "\""; rtn += ",\"read\":" + ((cursor.getInt(6) == 1) ? "true" : "false"); rtn += ",\"type\":" + cursor.getString(7); rtn += ",\"service_center\":" + cursor.getString(8); rtn += "}"; } return "[" + rtn + "]"; } catch (Exception e) { mBrowser.exception(getInterfaceName(), e); return "[]"; } } public String getThreads(int number) { Cursor cursor = null; ContentResolver contentResolver = mContext.getContentResolver(); try { if (number > 0) { cursor = contentResolver.query(Uri.parse(CONTENT_URI_SMS_CONVERSATIONS), THREAD_COLUMNS, null, null, "thread_id desc limit " + number); } else { cursor = contentResolver.query(Uri.parse(CONTENT_URI_SMS_CONVERSATIONS), THREAD_COLUMNS, null, null, "thread_id desc"); } if (cursor == null || cursor.getCount() == 0) return "[]"; String rtn = ""; for (int i = 0; i < cursor.getCount(); i++) { cursor.moveToPosition(i); if (i > 0) rtn += ","; rtn += "{"; rtn += "\"thread_id\":" + cursor.getString(0); rtn += ",\"msg_count\":" + cursor.getString(1); rtn += ",\"snippet\":\"" + Escape.escape(cursor.getString(2)) + "\""; rtn += "}"; } return "[" + rtn + "]"; } catch (Exception e) { mBrowser.exception(getInterfaceName(), e); return "[]"; } } }
发表评论
-
微媒-腾讯微博开放平台应用 发布新版本了(2012.05.04更新)
2012-04-29 02:51 1076今天,微媒正式上线了。 介绍: ... -
[转]SQLite的工具类 ---- 通过反射把Cursor封装到VO对象
2011-12-16 16:50 1710在写DAO层时,觉得从Cursor里一个一个的取出字段值再装到 ... -
Tab的多种典型用法总结(带动画)
2011-12-09 23:29 2939里面总结的是tab的一些比较典型的用法,带有多种动画效果,希望 ... -
Tab的多种典型用法总结(带动画)
2011-12-09 23:26 1里面总结的是tab的一些比较典型的用法,带有多种动画效果,希望 ... -
【转载】开发经验总结,很受用。
2011-12-07 23:09 11061、有一个方法,有一段 ... -
Android UI 设计秘笈
2011-11-27 22:02 1150好的UI设计可以帮助我们卖出更多拷贝,赚到更多钱^_^. A ... -
Android拍照、录像、录音代码范例
2011-11-27 22:01 2203RecordActivity.java package ... -
获取优酷、土豆、酷6、6间房等视频
2011-11-27 21:59 1363通过JAVA获取优酷、土豆、酷6、6间房、56视频,现在很多社 ... -
android手势识别ViewFlipper触摸动画
2011-11-26 16:23 1122今天给大家介绍一下如何实现androd主页面的左右拖动效果。实 ... -
Android开发返回拍摄的图片
2011-11-25 22:54 959第一步 try { Intent intent ... -
鉴客 Android中如何生成带圆角的Bitmap图片
2011-11-25 22:30 1973有时候我们在开发Android应用时,会遇到圆角图片的问题,那 ... -
鉴客 Android 的 MediaPlayer 多媒体播放器
2011-11-25 22:27 1135MediaPlayer 可以播放音频和视频,另外也可以通过 ... -
Android 轻松实现语音识别
2011-11-25 22:23 976苹果的iphone 有语音识别用的是Google 的技术,做为 ... -
半个小时移植Flash游戏到Android平台
2011-11-25 22:20 1655网上有很多现成的Flash ... -
分享Android CellLocation源码,基于Rexsee对象的基站定位功能
2011-11-24 16:05 1919使用Rexsee的基站定位(RexseeCellLocatio ... -
Android中判断网络功能是否可用
2011-11-24 15:51 1313如何在Android中判断网络功能是否可用,代码如下: ... -
Android中如何生成带圆角的Bitmap图片
2011-11-24 15:46 879有时候我们在开发Android应用时,会遇到圆角图片的问题,那 ... -
[转]近百android程序源码贡献
2011-11-24 00:02 979Android PDF 阅读器 http://sourcefo ... -
Android imageView图片按比例缩放
2011-11-23 16:42 2915android:scaleType可控制图片的缩放方式,示例代 ...
相关推荐
【Android SMSNotify】是一款专为Android...通过对`SMSNotify`源码的学习和理解,开发者不仅可以掌握Android短信通知的实现方式,还能深入了解Android系统的组件交互、权限管理、数据存储以及性能优化等多方面知识。
【Android短信程序源码解析】 Android短信程序是一个用于在移动设备上发送和接收短信的应用,其核心功能包括自定义编辑短信、短信分类以及收藏功能。这个"短信小窝"源码提供了一个完整的实现,让我们来深入探讨其中...
【Android短信应用源码解析】 在Android开发中,构建一个短信应用涉及到许多核心技术和组件的使用。本项目源码提供了一个完整的短信应用实例,通过它我们可以深入理解Android平台上的消息处理、用户界面设计以及与...
首先,Android短信服务主要基于TelephonyManager、SmsManager和ContentProvider等组件。`TelephonyManager`是获取手机通话状态和信息的主要接口,包括获取SIM卡信息、网络状态等。`SmsManager`则负责短信的发送和...
这个"Android短信拦截源码"可能包含了实现这一功能的完整代码库,可以帮助我们理解如何在Android应用中实现短信的拦截和管理。下面将详细讨论Android短信拦截的相关知识点。 1. **BroadcastReceiver**: 在Android中...
`SmsBroadcastReceiver`是Android短信功能的关键组件,用于监听并响应短信相关的系统广播,如短信到达、发送成功或失败等事件。当接收到这些广播时,广播接收者会触发相应的处理逻辑。 3. **内容提供者(Content ...
这个"Android短信发送源码"示例为你提供了一种简单易懂的方法来实现这一功能。下面将详细讲解相关知识点,包括Android SMS API的使用、权限管理以及实际的代码实现。 首先,Android系统为发送短信提供了`SmsManager...
本文将深入探讨如何在Android项目中实现短信验证码的自动填充功能,通过分析给出的源码,我们可以了解到这个过程的关键技术点。 首先,我们需要理解短信验证码的生命周期。通常,验证码是由服务器发送到用户的手机...
这个源码提供了开发人员一个很好的学习示例,展示了如何实现自动回复功能,以及如何与Android系统的短信服务进行交互。 在Android平台上,短信操作涉及到了以下几个关键知识点: 1. **AndroidManifest.xml配置**:...
【Android短信小助手源码分析】 这个压缩包文件"Android 短信小助手源码.zip"提供了一个Android应用程序的源代码,名为“短信小助手”。这个应用可能是一个实用工具,帮助用户管理、发送和接收短信。源码是学习和...
Android应用源码安卓源码(172个合集),可以做为你的学习参考。 365MobileSecretary v1.0.6(365手机助手AIDL) 888个经典 Logo.rar AdXmpp(Openfire+asmack+spark) .zip AidlDemo(简单aidl的例子) aidl跨进程调用....
Android例子源码可以定时批量发送短信的短信时光机是一个可以自定义定时批量短信发送例子源码(类似于短信时光机),编辑的短信可以一键选择多个联系人进行定时发送,批量发送祝福短信这种情况在节假日是普遍存在的...
通过理解以上知识点,开发者可以构建一个完善的Android短信语音播报系统。在实践中,可能还需要结合具体的业务需求进行相应的定制和改进。这个源码应该提供了实现这些功能的基础代码,开发者可以通过阅读和学习源码...
本项目是一个基于Android Studio开发的点菜系统,它包含了完整的源码和APK文件,能够帮助开发者或学生深入了解Android应用的开发流程,尤其是餐饮类应用的实现细节。以下是该点菜系统的一些关键知识点: 1. **登录...
首先,我们要明确的是,“Android短信小助手”是一款针对Android系统设计的应用,它主要功能可能包括接收、发送短信,管理短信,以及可能的一些高级功能,如短信过滤、自动回复等。通过这款应用的源码,我们可以了解...
为了应用的推广、传播,很多的应用中都有“分享”功能,一个按钮,点击后会出现短信、微博等等一切实现了分享功能的应用列表。具体可参考:http://blog.csdn.net/xyz_lmn/article/details/16856843
通过深入研究这个源码,开发者可以学习如何在Android平台上实现电话和短信的监听功能,同时理解权限管理、广播接收器、服务以及Android系统中的其他核心概念。这将对提升Android应用开发能力大有裨益。
这个项目基于Android Studio,提供了实现自动发送短信的功能。在本文中,我们将深入探讨相关的关键知识点,包括Android Studio的环境配置、权限管理、Intent机制、SMSManager类以及后台服务的运用。 首先,Android ...