安卓开发日记——基于百度地图和短信的追踪app


4.在地图上添加一个标记:这种写法会导致addoverlay是红色的

改法:

把mbaidumap要改为自己地图资源的名字:mMapview.

特别需要注意的是,这段代码应该添加到oncreat函数中,不然也会导致addoverlay为红色的,addoverlay是创建覆盖物的一个方法

在构建maker图标前添加一句话:

在地图上创建可以移动的覆盖物:

改法:

5.如何实现地图的定位:

(1)参考慕课网的方法

①调用百度地图的定位,实现出来和安卓的系统定位不一样的地方就是使用百度地图进行定位能够在屏幕的中央显示一个小蓝点。

在mainactivity中使用initLocation方法,然后创建这个方法。

然后再书写onstart和onstop方法的代码,在进入程序的时候开始进行定位,离开的时候销毁定位。这样可以每次打开应用的时候都是更新了的位置。

还需要写一个位置监听器。用位置监听器获得当前经纬度

效果:

(2)用安卓自带的系统定位

安卓系统可以调用自己的定位,可以通过文本形式在界面中进行显示。

通过addtext方法添加到界面中进行经纬度的显示。显示为location=参数值。调用广播接收,查找经纬度值。

①添加一个textview控件

②需要声明的变量

③需要添加在mainactivity的oncreate函数中的

④需要添加到mainactivity中其他位置的代码

位置监听器:

列表函数方法:

Onresume

Onpause

⑤效果图

6.出现的问题

定位到其他位置:①可能是手机GPS没有处于打开状态

②源代码中权限没添加

③手机不信任此应用,需要手动打开权限,权限没有打开很有可能导致程序崩溃。

7.发短信:

1.第一种方法

在界面上添加to,what,getfrom,getcontent,send五个关于发短信的控件。

实现的功能是,在to的编辑框内输入一个电话号码,在what里编辑短信,点击send实现发送。

当好友收到短信时,在getfrom的文本框内会显示他的电话号码;app自动读取短信,获取经纬度。在getcontent的文本框内显示短信内容。

①在界面上添加to,what,getfrom,getcontent,send五个关于发短信的控件。

②mainactivity中

Onresume中

短信发送后的发送状态广播接收器:

//短信发送到对方后,对对方返回的接受状态的处理逻辑public classSmsDeliveryStatusReceiverextendsBroadcastReceiver {

private static finalStringTAG="SmsDeliveryStatusReceiver";

@Override

public voidonReceive(Context context, Intent intent) {// Log.d(TAG,"SmsDeliveryStatusReceiver onReceive.");switch(getResultCode()) {

caseActivity.RESULT_OK:

Toast.makeText(context,"Send Succeeded",Toast.LENGTH_SHORT).show();// Log.i(TAG, "RESULT_OK");break;

caseActivity.RESULT_CANCELED:

Toast.makeText(context,"Send Failed",Toast.LENGTH_SHORT).show();// Log.i(TAG, "RESULT_CANCELED");break;

}

Bundle bundle = intent.getExtras();

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

SmsMessage[] messages =newSmsMessage[pdus.length];

for(inti =0; ilength; i++)

{

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

}

String address = messages[0].getOriginatingAddress();

String fullMessage =" ";

for(SmsMessage message : messages)

{

fullMessage += message.getMessageBody();

}//收取处理短信字符串   ->  address  fullmessageif(fullMessage.trim().equals("where are you?"))

{

//Toast.makeText(getApplicationContext(),address.substring(3, address.length()), Toast.LENGTH_SHORT).show();SmsManager smsManager = SmsManager.getDefault();//address.substring(3)smsManager.sendTextMessage(address.substring(3, address.length()),null,//String.valueOf(mLatitude)+"/"+String.valueOf(mLongtitude),null,null);

}

}

}

MessageReceivermessageReceiver=newMessageReceiver();

//registerReceiver(messageReceiver, receiveFilter);classMessageReceiverextendsBroadcastReceiver{

@Override

public voidonReceive(Context context, Intent intent) {

String sms ="";

Bundle bundle = intent.getExtras();

Object[] pdus = (Object[]) intent.getExtras().get("pdus");

for(Object pdu : pdus) {

SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);

String address = smsMessage.getDisplayOriginatingAddress();

String fullMessage = smsMessage.getMessageBody();

sender.setText(address);

//content.setText(fullMessage);sms += fullMessage;

/* if ("10086".equals(address)) {//测试截断短信abortBroadcast();}*/}

content.setText(sms);

}

}

2.第二种方法

①首先在main样式表中添加“特别关心”Button控件,ID:button1;

②声明button

在mainactivity的oncreat函数中添加

点击按钮后执行的方法:

这样短信就可以通过点击“特别关心”按钮进行发送啦

8.如何自动回复好友的短信为经纬度,如何自动读取短信并且显示point坐标在地图资源控件上:

①在mainactivity最后一个大括号之前添加:

这个方法介绍的内容是:在收到了一个短信之后,把短信的内容转化为massage,把发送短信的号码传值给sender变量;用if语句判断短信的内容是否为“where are you?”,如果是where are you?的话就把获取的短信号码变为将要回复的短信号码。回复的内容为:经度+纬度。然后进行发送

如果收到短信的内容中包含内容“/”(包含经纬度坐标的回复短信)的话,则开始执行短信内容转化为经纬度坐标并显示在地图上的代码。

先把短信进行了拆分,传值进字符串mLatitude和mlongtitude,再进行数据类型的强制转化(因为坐标点必须是double类型的数据),最后创建坐标点。

②在onstart方法中添加在程序一开始就运行监测收到短信的代码:如下图所示

③需要声明的变量名:

达到的效果:

图片发自简书App
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容