学习android
这段时间,一直在看《Android应用开发揭秘》,也跟着书上的实例敲了代码。可是,实际的情况是:放下书本后就忘。知识点太过于散乱,根本无法掌握。于是,在前天决定调整下学习方法。通过实际项目将知识点串起来,在编写代码过程中强化对知识的理解。
这两天一直在琢磨做什么项目,在浏览了android的官方网站之后,决定做个短信收发软件。
软件的功能要实现:
①监听短信:当手机接收到短信信息后,立刻捕获。
②捕获信息后,通过信息中包括的电话号码作为查询条件获取到存放在通讯录中的联系人姓名。
③显示短信:将捕获的短信显示给手机用户。
④短信发送:将手机用户编辑好的信息发送给指定的联系人。
要实现以上的功能,需要了解
①android中负责监听手机信息的类或者对象
②获取通讯录的位置:SIM卡或手机
③显示短信给手机用户使用的控件
④显示给手机用户什么内容(联系人姓名,照片(如果有))
由于是才开始接触手机软件,理不出一个头绪来,希望各位有经验的朋友给个建议。 --------------------编程问答-------------------- 你很强大,写好了,共享下 。
我也买了揭秘。发现那书好垃圾。NND。大哥很生气,就是个例子组成的,而且,讲解的还不详细,好多超范围。要不是知道有个源码,可以看,真不知道,他那些类,是怎么组织的。
而且,网上,有书本的全部源代码下载,我下载,一看,火死了。都是1.5平台,不能直接导入。
我最讨厌那个1.5了。哪个平台不好,非要搞个1.5的。 真是和读者过不去啊 。
你的这个程序,我好想,没多久看过一个ANDROID真机教程,里面最后是这个程序。还有照相机程序。
再说了饿你 百度下,那个代码例子,不知道有多少。 --------------------编程问答-------------------- 楼上的,谢谢顶贴~~
例子我也看了不少,但有个问题一直困扰着我:
我是要设置一个模块用它来在安装的时候获取到通讯录里的数据,然后插入到自己创建的sqlite数据库中,捕获短信后就直接到数据库里查询。还是在运行的时候捕获短信,查询通讯录中的信息后再插入到数据库中。
即便是选择任何一个方式,我都需要获取到通讯录。 --------------------编程问答-------------------- --------------------编程问答-------------------- 《Android应用开发揭秘》没买过,其他的也没有。
现在的这类书,大都哗众取宠。来本电子档的就可了,值得看,看两眼。不值看,硬盘里呆着。
《深入浅出Android.pdf》,只区区几十页。入门,不错!
《Java中文教程(第三版).pdf》,清华大学。入门,不错!
这两本入门不错的书,其实都有问题的:排版、错漏,甚至词不达意。但不影响入门啊!
《Android应用开发揭秘》,明摆着艰深。却说,“有java基础就可看”,扯! --------------------编程问答-------------------- --------------------编程问答-------------------- 是杨丰盛写的吗?我想问下楼主你的环境怎么搭的啊?为什么我的ADT老安装不成功啊,老说找不到东西,希望帮忙开解下,我都装了好多天了。 --------------------编程问答--------------------
你单独开个帖子, ADT的安装 为题目。看我能不能帮你解决
--------------------编程问答--------------------
你把安装的过程详细描述下(最好截图),我们才可以针对过程中出现的问题,看能不能给予帮助。 --------------------编程问答-------------------- 我构思了下软件的流程,不知道对不对,请大大们指正:
SMSAdapter:负责创建短信数据库。并提供DML方法(在程序加载到手机中,即create database及tables).
SMSCapturer extends BroadcastReceiver 主要实现监听短信,将捕获到的数据传递给SMSAnalyzer。
SMSAnalyzer:
①获取通讯录。两种方式:SIM卡,手机中。
②将SMSCapturer传递的参数(手机号码)作为查询条件,获取通讯录中的相关数据,并插入到创建的数据库中。
--------------------编程问答-------------------- 下点视频,结合书一起这样好点。其实入门很简单,深入就有点问题了!还是要多做东西。 --------------------编程问答-------------------- 我在刚开始学的时候是买了好几本,不过。。。还是看官方文档吧 --------------------编程问答-------------------- 楼主其实这本书挺好的,楼主认真的看,把例子敲一遍,放下书感觉什么也不会,但是你真的要作的时候还是有印象的,至于印象的多少要看你自己当时的认真和记忆程度了。很多东西不是要记下来,只是了解一下代码的逻辑,用的时候去网上一搜就可以了,用多了就记住了。 --------------------编程问答-------------------- 开发入门上好像有你这个的源代码 --------------------编程问答--------------------
楼上的能详细点吗? --------------------编程问答-------------------- 昨天用网上的例子写个类extends BroadcastReceiver,用它来捕获短信。
用contactNumber变量来传递手机号码,通过手机号码在通讯录中查找对应的信息(联系人名称,头像等)。
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
public class DataCapture extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Bundle bundle =intent.getExtras();
StringBuilder strBuilder;
//contactNumber
String contactNumber;
if(bundle!=null){
Object smsObject[] =(Object[]) bundle.get("pdus");
//Initial the array "smsReceiver"
SmsMessage smsReceiver []= new SmsMessage [smsObject.length];
for(int i=0;i<=smsObject.length;i++){
smsReceiver[i]=SmsMessage.createFromPdu((byte[])smsObject[i]);
}
for(SmsMessage smsCaputer:smsReceiver){
strBuilder =new StringBuilder();
contactNumber =smsCaputer.getDisplayOriginatingAddress();
strBuilder.append(contactNumber);
strBuilder.append(smsCaputer.getDisplayMessageBody());
}
}
}
}
--------------------------凄楚的分割线
有两个问题想请大家给解决下:
①BroadcastReceiver 是不是自动监听?如果不是,我是不是要写一个类来继承Service?
②怎么样获取到通讯录的位置? --------------------编程问答--------------------
不用,注册之后装上,重新启动后就可以自己监听了 你可以试试 --------------------编程问答-------------------- 都是自己学啊 --------------------编程问答-------------------- 最好有视频,这样对菜鸟的学习帮助更大~~期待楼主的作品 --------------------编程问答--------------------
一般这种的情况是不能安装在中文的路径下的,你看看是不是这个问题
补充:移动开发 , Android