android百度地图api实现短信接收定位资料Word下载.docx
- 文档编号:19713060
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:20
- 大小:50.72KB
android百度地图api实现短信接收定位资料Word下载.docx
《android百度地图api实现短信接收定位资料Word下载.docx》由会员分享,可在线阅读,更多相关《android百度地图api实现短信接收定位资料Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
BMapManager初始化错误!
"
Toast.LENGTH_LONG).show();
publicstaticDemoApplicationgetInstance(){
returnmInstance;
//常用事件监听,用来处理通常的网络错误,授权验证错误等
staticclassMyGeneralListenerimplementsMKGeneralListener{
publicvoidonGetNetworkState(intiError){
if(iError==MKEvent.ERROR_NETWORK_CONNECT){
Toast.makeText(DemoApplication.getInstance().getApplicationContext(),"
您的网络出错啦!
Toast.LENGTH_LONG).show();
elseif(iError==MKEvent.ERROR_NETWORK_DATA){
输入正确的检索条件!
//...
publicvoidonGetPermissionState(intiError){
//非零值表示key验证未通过
if(iError!
=0){
//鎺堟潈Key閿欒锛�
请输入正确的授权Key,并检查您的网络连接是否正常!
error:
"
+iError,Toast.LENGTH_LONG).show();
DemoApplication.getInstance().m_bKeyRight=false;
else{
DemoApplication.getInstance().m_bKeyRight=true;
Toast.makeText(DemoApplication.getInstance().getApplicationContext(),
"
key认证成功"
}
Mainactivity.java:
importjava.util.List;
importandroid.annotation.SuppressLint;
importandroid.app.Activity;
importandroid.content.ContentValues;
importandroid.database.ContentObserver;
importandroid.database.Cursor;
importandroid.graphics.drawable.Drawable;
import.Uri;
importandroid.os.Build;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.telephony.SmsManager;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.EditText;
importcom.baidu.mapapi.map.ItemizedOverlay;
importcom.baidu.mapapi.map.MapView;
importcom.baidu.mapapi.map.OverlayItem;
importcom.baidu.mapapi.search.MKAddrInfo;
importcom.baidu.mapapi.search.MKBusLineResult;
importcom.baidu.mapapi.search.MKDrivingRouteResult;
importcom.baidu.mapapi.search.MKPoiResult;
importcom.baidu.mapapi.search.MKSearch;
importcom.baidu.mapapi.search.MKSearchListener;
importcom.baidu.mapapi.search.MKShareUrlResult;
importcom.baidu.mapapi.search.MKSuggestionResult;
importcom.baidu.mapapi.search.MKTransitRouteResult;
importcom.baidu.mapapi.search.MKWalkingRouteResult;
importapi.basestruct.GeoPoint;
//importcom.gy.msmsend.R;
publicclassMainActivityextendsActivity{
//UI相关
ButtonmBtnReverseGeoCode=null;
//将坐标反编码为地址
ButtonmBtnGeoCode=null;
//将地址编码为坐标
ButtonmsmSend=null;
//短信发送按钮
//地图相关
MapViewmMapView=null;
//地图View
//搜索相关
MKSearchmSearch=null;
//搜索模块,也可去掉地图模块独立使用
EditTextphoneText;
String[]as;
Stringcity=null;
Stringpos=null;
Drawablemarker;
intpng=0;
//
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
/*
*注册短信变化事件监听
*/
SmsContentcontent=newSmsContent(newHandler());
//注册短信变化监听
this.getContentResolver().registerContentObserver(Uri.parse("
content:
//sms/"
),true,content);
/**
*使用地图sdk前需先初始化BMapManager.
*BMapManager是全局的,可为多个MapView共用,它需要地图模块创建前创建,
*并在地图地图模块销毁后销毁,只要还有地图模块在使用,BMapManager就不应该销毁
*/
DemoApplicationapp=(DemoApplication)this.getApplication();
if(app.mBMapManager==null){
app.mBMapManager=newBMapManager(getApplicationContext());
/**
*如果BMapManager没有初始化则初始化BMapManager
app.mBMapManager.init(newDemoApplication.MyGeneralListener());
setContentView(R.layout.activity_main);
CharSequencetitleLable="
我的位置"
;
setTitle(titleLable);
//地图初始化
mMapView=(MapView)findViewById(R.id.bmapView);
mMapView.getController().enableClick(true);
mMapView.getController().setZoom(12);
//初始化搜索模块,注册事件监听
mSearch=newMKSearch();
mSearch.init(app.mBMapManager,newMKSearchListener(){
publicvoidonGetPoiDetailSearchResult(inttype,interror){
publicvoidonGetAddrResult(MKAddrInfores,interror){
if(error!
Stringstr=String.format("
错误号:
%d"
error);
Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();
return;
}
//地图移动到该点
mMapView.getController().animateTo(res.geoPt);
if(res.type==MKAddrInfo.MK_GEOCODE){
//地理编码:
通过地址检索坐标点
StringstrInfo=String.format("
纬度:
%f经度:
%f"
res.geoPt.getLatitudeE6()/1e6,res.geoPt.getLongitudeE6()/1e6);
Toast.makeText(MainActivity.this,strInfo,Toast.LENGTH_LONG).show();
if(res.type==MKAddrInfo.MK_REVERSEGEOCODE){
//反地理编码:
通过坐标点检索详细地址及周边poi
StringstrInfo=res.strAddr;
EditTexteditGeoCodeKey=(EditText)findViewById(R.id.geocodekey);
//设置城市
editGeoCodeKey.setText(strInfo);
//生成ItemizedOverlay图层用来标注结果点
ItemizedOverlay<
OverlayItem>
itemOverlay=newItemizedOverlay<
(null,mMapView);
//生成Item
OverlayItemitem=newOverlayItem(res.geoPt,"
null);
//为maker定义位置和边界
marker.setBounds(0,0,marker.getIntrinsicWidth(),marker.getIntrinsicHeight());
//给item设置marker
item.setMarker(marker);
//在图层上添加item
itemOverlay.addItem(item);
//清除地图其他图层
mMapView.getOverlays().clear();
//添加一个标注ItemizedOverlay图层
mMapView.getOverlays().add(itemOverlay);
//执行刷新使生效
mMapView.refresh();
}
publicvoidonGetPoiResult(MKPoiResultres,inttype,interror){
publicvoidonGetDrivingRouteResult(MKDrivingRouteResultres,interror){
publicvoidonGetTransitRouteResult(MKTransitRouteResultres,interror){
publicvoidonGetWalkingRouteResult(MKWalkingRouteResultres,interror){
publicvoidonGetBusDetailResult(MKBusLineResultresult,intiError){
publicvoidonGetSuggestionResult(MKSuggestionResultres,intarg1){
publicvoidonGetShareUrlResult(MKShareUrlResultresult,inttype,
interror){
//TODOAuto-generatedmethodstub
});
//设定地理编码及反地理编码按钮的响应
mBtnReverseGeoCode=(Button)findViewById(R.id.reversegeocode);
mBtnGeoCode=(Button)findViewById(R.id.geocode);
msmSend=(Button)findViewById(R.id.sendButton);
OnClickListenerclickListener=newOnClickListener(){
publicvoidonClick(Viewv){
SearchButtonProcess(v);
};
mBtnReverseGeoCode.setOnClickListener(clickListener);
mBtnGeoCode.setOnClickListener(clickListener);
msmSend.setOnClickListener(clickListener);
*发起搜索
*@paramv
voidSearchButtonProcess(Viewv){
if(mBtnReverseGeoCode.equals(v)){
EditTextlat=(EditText)findViewById(R.id.lat);
EditTextlon=(EditText)findViewById(R.id.lon);
//得到需要标在地图上的资源
marker=getResources().getDrawable(R.drawable.ic_mark0);
GeoPointptCenter=newGeoPoint((int)(Float.valueOf(lat.getText().toString())*1e6),(int)(Float.valueOf(lon.getText().toString())*1e6));
//反Geo搜索
mSearch.reverseGeocode(ptCenter);
}elseif(mBtnGeoCode.equals(v)){
EditTexteditCity=(EditText)findViewById(R.id.city);
EditTexteditGeoCodeKey=(EditText)findViewById(R.id.geocodekey);
//Geo搜索
mSearch.geocode(editGeoCodeKey.getText().toString(),editCity.getText().toString());
}elseif(msmSend.equals(v)){
phoneText=(EditText)findViewById(R.id.tel);
//发送短信
sendMessage();
}
protectedvoidonPause(){
mMapView.onPause();
super.onPause();
protectedvoidonResume(){
mMapView.onResume();
super.onResume();
protectedvoidonDestroy(){
mMapView.destroy();
mSearch.destory();
super.onDestroy();
protectedvoidonSaveInstanceState(BundleoutState){
super.onSaveInstanceState(outState);
mMapView.onSaveInstanceState(outState);
protectedvoidonRestoreInstanceState(BundlesavedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
mMapView.onRestoreInstanceState(savedInstanceState);
/**
*
*/
privatevoidsendMessage(){
//获取文本框中的内容
Stringphone_num=phoneText.getText().toString();
Stringcontent="
QUERY"
SmsManagersmsMagager=SmsManager.getDefault();
if(content.length()>
70){
List<
String>
sms=smsMagager.divideMessage(content);
for(Stringcon:
sms){
smsMagager.sendTextMessage(phone_num,null,con,null,null);
}
}else{
smsMagager.sendTextMessage(phone_num,null,content,null,null);
Toast.makeText(MainActivity.this,R.string.info,Toast.LENGTH_LONG).show();
/*
*监听短信数据库
classSmsContentextendsContentObserver{
privateCursorcursor=null;
@SuppressLint("
ShowToast"
)
publicSmsContent(Handlerhandler){
super(handler);
//TODOAuto-generatedconstructorstu
@SuppressWarnings("
deprecation"
publicvoidonChange(booleanselfChange)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 百度 地图 api 实现 短信 接收 定位 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)