色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android實(shí)現(xiàn)地圖軌跡的方法

瀏覽:5日期:2022-09-19 14:23:32

本文實(shí)例為大家分享了Android實(shí)現(xiàn)地圖軌跡的具體代碼,供大家參考,具體內(nèi)容如下

mainActivity.java

package com.example.amapdemo;import android.app.Activity;import android.os.Bundle;import android.widget.Toast;import com.amap.api.track.AMapTrackClient;import com.amap.api.track.ErrorCode;import com.amap.api.track.OnTrackLifecycleListener;import com.amap.api.track.TrackParam;import com.amap.api.track.query.entity.LocationMode;import com.amap.api.track.query.model.AddTerminalRequest;import com.amap.api.track.query.model.AddTerminalResponse;import com.amap.api.track.query.model.AddTrackResponse;import com.amap.api.track.query.model.DistanceResponse;import com.amap.api.track.query.model.HistoryTrackResponse;import com.amap.api.track.query.model.LatestPointResponse;import com.amap.api.track.query.model.OnTrackListener;import com.amap.api.track.query.model.ParamErrorResponse;import com.amap.api.track.query.model.QueryTerminalRequest;import com.amap.api.track.query.model.QueryTerminalResponse;import com.amap.api.track.query.model.QueryTrackResponse;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final AMapTrackClient aMapTrackClient = new AMapTrackClient(getApplicationContext());final long serviceId = 291742; // 這里填入你創(chuàng)建的服務(wù)idfinal String terminal = 'user-123'; // 唯一標(biāo)識(shí)某個(gè)用戶或某臺(tái)設(shè)備的名稱aMapTrackClient.setInterval(5, 30);//報(bào)周期設(shè)置為30s:aMapTrackClient.setCacheSize(20);//設(shè)置緩存aMapTrackClient.setLocationMode(LocationMode.DEVICE_SENSORS);//定位final OnTrackLifecycleListener onTrackLifecycleListener = new OnTrackLifecycleListener() { @Override public void onBindServiceCallback(int i, String s) { } @Override public void onStartGatherCallback(int status, String msg) {if (status == ErrorCode.TrackListen.START_GATHER_SUCEE || status == ErrorCode.TrackListen.START_GATHER_ALREADY_STARTED) { Toast.makeText(MainActivity.this, '定位采集開(kāi)啟成功!', Toast.LENGTH_SHORT).show();} else { Toast.makeText(MainActivity.this, '定位采集啟動(dòng)異常!', Toast.LENGTH_SHORT).show();} } @Override public void onStartTrackCallback(int status, String msg) {if (status == ErrorCode.TrackListen.START_TRACK_SUCEE || status == ErrorCode.TrackListen.START_TRACK_SUCEE_NO_NETWORK || status == ErrorCode.TrackListen.START_TRACK_ALREADY_STARTED) { aMapTrackClient.startGather(this);} else { Toast.makeText(MainActivity.this, '軌跡上報(bào)服務(wù)服務(wù)啟動(dòng)異常,' + msg, Toast.LENGTH_SHORT).show();} } @Override public void onStopGatherCallback(int i, String s) { } @Override public void onStopTrackCallback(int i, String s) { }};//queryTerminalRequest=new QueryTerminalRequest(serviceId, terminal);//aMapTrackClient.queryTerminal(queryTerminalRequest,DriverNewOrderActivity.this);aMapTrackClient.queryTerminal(new QueryTerminalRequest(serviceId, terminal), new OnTrackListener() { @Override public void onQueryTerminalCallback(QueryTerminalResponse queryTerminalResponse) {if (queryTerminalResponse.isSuccess()) { if (queryTerminalResponse.getTid() <= 0) {aMapTrackClient.addTerminal(new AddTerminalRequest(terminal, serviceId), new OnTrackListener() { @Override public void onQueryTerminalCallback(QueryTerminalResponse queryTerminalResponse) { } @Override public void onCreateTerminalCallback(AddTerminalResponse addTerminalResponse) {if (addTerminalResponse.isSuccess()) { long terminalId = addTerminalResponse.getTid(); aMapTrackClient.startTrack(new TrackParam(serviceId, terminalId), onTrackLifecycleListener);} else { Toast.makeText(MainActivity.this, '請(qǐng)求失敗,' + addTerminalResponse.getErrorMsg(), Toast.LENGTH_SHORT).show();} } @Override public void onDistanceCallback(DistanceResponse distanceResponse) { } @Override public void onLatestPointCallback(LatestPointResponse latestPointResponse) { } @Override public void onHistoryTrackCallback(HistoryTrackResponse historyTrackResponse) { } @Override public void onQueryTrackCallback(QueryTrackResponse queryTrackResponse) { } @Override public void onAddTrackCallback(AddTrackResponse addTrackResponse) { } @Override public void onParamErrorCallback(ParamErrorResponse paramErrorResponse) { }}); } else {long terminalId = queryTerminalResponse.getTid();aMapTrackClient.startTrack(new TrackParam(serviceId, terminalId), onTrackLifecycleListener); }} else { Toast.makeText(MainActivity.this, '請(qǐng)求失敗,' + queryTerminalResponse.getErrorMsg(), Toast.LENGTH_SHORT).show();} } @Override public void onCreateTerminalCallback(AddTerminalResponse addTerminalResponse) { } @Override public void onDistanceCallback(DistanceResponse distanceResponse) { } @Override public void onLatestPointCallback(LatestPointResponse latestPointResponse) { } @Override public void onHistoryTrackCallback(HistoryTrackResponse historyTrackResponse) { } @Override public void onQueryTrackCallback(QueryTrackResponse queryTrackResponse) { } @Override public void onAddTrackCallback(AddTrackResponse addTrackResponse) { } @Override public void onParamErrorCallback(ParamErrorResponse paramErrorResponse) { }}); }}

androidMainifest配置文件

<?xml version='1.0' encoding='utf-8'?><manifest xmlns:android='http://schemas.android.com/apk/res/android' xmlns:tools='http://schemas.android.com/tools' package='com.example.amapdemo'> <!--允許程序打開(kāi)網(wǎng)絡(luò)套接字--> <uses-permission android:name='android.permission.INTERNET' /> <!--允許程序設(shè)置內(nèi)置sd卡的寫(xiě)權(quán)限--> <uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE' /> <!--允許程序讀寫(xiě)手機(jī)狀態(tài)和身份--> <uses-permission android:name='android.permission.READ_PHONE_STATE' /> <!--允許程序訪問(wèn)CellID或WiFi熱點(diǎn)來(lái)獲取粗略的位置--> <uses-permission android:name='android.permission.ACCESS_COARSE_LOCATION' /> <uses-permission android:name='android.permission.WAKE_LOCK'/> <uses-permission android:name='android.permission.BLUETOOTH'/> <!--用于進(jìn)行網(wǎng)絡(luò)定位--> <uses-permission android:name='android.permission.ACCESS_COARSE_LOCATION'/> <!--用于訪問(wèn)GPS定位--> <uses-permission android:name='android.permission.ACCESS_FINE_LOCATION'/> <!--用于獲取運(yùn)營(yíng)商信息,用于支持提供運(yùn)營(yíng)商信息相關(guān)的接口--> <uses-permission android:name='android.permission.ACCESS_NETWORK_STATE'/> <!--用于訪問(wèn)wifi網(wǎng)絡(luò)信息,wifi信息會(huì)用于進(jìn)行網(wǎng)絡(luò)定位--> <uses-permission android:name='android.permission.ACCESS_WIFI_STATE'/> <!--用于獲取wifi的獲取權(quán)限,wifi信息會(huì)用來(lái)進(jìn)行網(wǎng)絡(luò)定位--> <uses-permission android:name='android.permission.CHANGE_WIFI_STATE'/> <!--用于申請(qǐng)調(diào)用A-GPS模塊--> <uses-permission android:name='android.permission.ACCESS_LOCATION_EXTRA_COMMANDS'/> <!--用于進(jìn)行網(wǎng)絡(luò)定位--> <uses-permission android:name='android.permission.ACCESS_COARSE_LOCATION'></uses-permission> <!--用于訪問(wèn)GPS定位--> <uses-permission android:name='android.permission.ACCESS_FINE_LOCATION'></uses-permission> <!--獲取運(yùn)營(yíng)商信息,用于支持提供運(yùn)營(yíng)商信息相關(guān)的接口--> <uses-permission android:name='android.permission.ACCESS_NETWORK_STATE'></uses-permission> <!--用于訪問(wèn)wifi網(wǎng)絡(luò)信息,wifi信息會(huì)用于進(jìn)行網(wǎng)絡(luò)定位--> <uses-permission android:name='android.permission.ACCESS_WIFI_STATE'></uses-permission> <!--這個(gè)權(quán)限用于獲取wifi的獲取權(quán)限,wifi信息會(huì)用來(lái)進(jìn)行網(wǎng)絡(luò)定位--> <uses-permission android:name='android.permission.CHANGE_WIFI_STATE'></uses-permission> <!--用于訪問(wèn)網(wǎng)絡(luò)--> <uses-permission android:name='android.permission.INTERNET'></uses-permission> <!--用于讀取手機(jī)當(dāng)前的狀態(tài)--> <uses-permission android:name='android.permission.READ_PHONE_STATE'></uses-permission> <!--寫(xiě)入擴(kuò)展存儲(chǔ),向擴(kuò)展卡寫(xiě)入數(shù)據(jù),用于寫(xiě)入緩存定位數(shù)據(jù)--> <uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE'></uses-permission> <!--用于申請(qǐng)調(diào)用A-GPS模塊--> <uses-permission android:name='android.permission.ACCESS_LOCATION_EXTRA_COMMANDS'></uses-permission> <!--用于申請(qǐng)獲取藍(lán)牙信息進(jìn)行室內(nèi)定位--> <uses-permission android:name='android.permission.BLUETOOTH'></uses-permission> <uses-permission android:name='android.permission.BLUETOOTH_ADMIN'></uses-permission> <applicationandroid:allowBackup='true'android:icon='@mipmap/ic_launcher'android:label='@string/app_name'android:roundIcon='@mipmap/ic_launcher_round'android:supportsRtl='true'android:theme='@style/Theme.AMapDemo'><!--<service android:name='com.amap.api.track.AMapTrackService' />--><service android:name='com.amap.api.location.APSService' /><activity android:name='.MainActivity'> <intent-filter><action android:name='android.intent.action.MAIN' /><category android:name='android.intent.category.LAUNCHER' /> </intent-filter></activity><meta-data android:name='com.amap.api.v2.apikey' android:value='388784de5a9c159ac13b5e3db130c0ad'/><service android:name='com.amap.api.track.AMapTrackService' /> </application></manifest>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 成人性色生活影片 | 韩国19禁主播裸免费福利 | 一级做a爰片久久毛片苍井优 | 午夜免费理论片a级 | 成年女人看片免费视频播放器 | 国产精品莉莉欧美自在线线 | 欧美日韩国产58香蕉在线视频 | 久久成人免费视频 | 欧美一级专区免费大片俄罗斯 | 久久精品视频网站 | 亚洲日本久久一区二区va | 欧美三级超在线视频 | 姐姐真漂亮在线视频中文版 | 九九视频高清视频免费观看 | 国产精品区一区二区免费 | 午夜亚洲| 免费午夜不卡毛片 | 精品国产成人 | 特色黄色片 | 日本在线观看一级高清片 | 久久亚洲不卡一区二区 | 一区二区三区在线观看视频 | 久久久久免费视频 | 日韩一区二区三区精品 | 黑人巨大videos极度另类 | 一区二区三区不卡在线观看 | 韩国女主播青草在线观看 | 奇米第四狠狠777高清秒播 | 91精品最新国内在线播放 | 欧美1 | 亚洲欧美日韩国产一区二区精品 | 久草中文在线视频 | 久草手机在线 | 免费五级在线观看日本片 | 天天躁日日躁狠狠躁一级毛片 | 亚洲精品久久久久久久网站 | a视频免费 | 寡妇野外啪啪一区二区 | 日本韩国一区二区三区 | 日韩精品综合 | 久久er精品热线免费 |