導航:首頁 > 操作系統 > android手機定位代碼

android手機定位代碼

發布時間:2023-05-06 15:37:29

Ⅰ 安卓手機怎麼能定位另個手機

用手機360啊。裡面有防盜。開啟之後,你用任意手機發送執行代碼到你丟的手機上。就顯示手機的具體位置了。定位精確到500米。

android中的GPS如何判斷是否定位

我們在做手機開發的時候,往往需要獲取用戶當前的位置,以使用戶獲得更好的體驗。這就需要我們在程序中寫出判斷用戶是否打開GPS定位系統,並對用戶做出提示。
判斷用戶是否打開GPS代碼如下:

12345678910111213

public static final boolean isOPen(final Context context) { LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); // 通過GPS衛星定位,定位級別可以精確到街(通過24顆衛星定位,在室外和空曠的地方定位準確、速度快) boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); // 通過WLAN或移動網路(3G/2G)確定的位置(也稱作AGPS,輔助GPS定位。主要用於在室內或遮蓋物(建築群或茂密的深林等)密集的地方定位) boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); if (gps || network) { return true; } return false; }

而有些時候用戶並不能配合我們打開GPS系統,如果我的應用必須打開GPS(比如說一些租車、送餐類型APP需要獲取用戶的位置信息),就需要強制用戶打開GPS定位。代碼如下:

123456789101112

public static final void openGPS(Context context) { Intent GPSIntent = new Intent(); GPSIntent.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); GPSIntent.addCategory("android.intent.category.ALTERNATIVE"); GPSIntent.setData(Uri.parse("custom:3")); try { PendingIntent.getBroadcast(context, 0, GPSIntent, 0).send(); } catch (CanceledException e) { e.printStackTrace(); } }

附錄:需要在Mainfast.xml中添加的許可權

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

Ⅲ 安卓手機怎麼虛擬定位呢

您好,安卓手機虛擬定位喚銷的方法如下:

1. 首先,打開手機的設置,進入「定位」選項,將定位和廳游服務開啟;

2. 然後,打開手機的瀏覽器,輸入搜索引擎,搜索「虛擬定位」,找到一個可以支持安卓手機的虛擬定位軟體;

3. 下載並安裝虛擬定位軟體,打開軟體,輸入要模擬的地址,點擊「開始定位」,即可實伏閉現虛擬定位。

此外,安卓手機還可以通過更改系統時間來實現虛擬定位,但是這種方法可能會影響到手機的正常使用,所以不建議使用。

Ⅳ 如何利用Android編程實現GPS定位

您好,很高興為您解答。


一、准備工作
需要如下三種軟體:
1. Eclipse
2. Android SDK
3. 開發Android程序的Eclipse 插件

為了開始我們的工作,首先要安裝Eclipse,然後從Google的網站獲得Android SDK,並且安裝Eclipse插件。

二、Activity類
每一種移動開發環境都有自己的基類。如J2ME應用程序的基類是midlets,BREW的基類是applets,而Android程序的基類是 Activity。這個activity為我們提供了對移動操作系統的基本功能和事件的訪問。這個類包含了基本的構造方法,鍵盤處理,掛起來恢復功能,以 及其他底層的手持設備的訪問。實質上,我們的應用程序將是一個Activity類的擴展。在本文中讀者將會通過例子學習到如何使用Activity類來編 寫Android程序。下面是一個簡單的繼承Activity的例子。

java">{
publicvoidonCreate(Bundleparams){
super.onCreate(params);
setContentView(R.layout.main);
}
publicbooleanonKeyDown(intkeyCode,KeyEventevent){
returntrue;
}
}

三 View類
View類是Android的一個超類,這個類幾乎包含了所有的屏幕類型。但它們之間有一些不同。每一個view都有一個用於繪畫的畫布。這個畫布可以用 來進行任意擴展。本文為了方便起見,只涉及到了兩個主要的View類型:定義View和Android的XML內容View。在上面的代碼中,使用的是 「Hello World」 XML View,它是以非常自然的方式開始的。
如果我們查看一下新的Android工程,就會發現一個叫main.xml的文件。在這個文件中,通過一個簡單的XML文件,描述了一個屏幕的布局。這個 簡單的xml文件的內容如下:

<?xmlversion="1.0"encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
androidrientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHoriz
android:text=""
/>
</RelativeLayout>

上面的內容的功能看起來非常明顯。這個特殊文件定義了一個相關的布局,這就意味著通過一個元素到另一個元素的關系或是它們父元素的關系來描述。對於視圖來 說,有一些用於布局的方法,但是在本文中只關注於上述的xml文件。
RealtiveLayout中包含了一個填充整個屏幕的文本框(也就是我們的LocateMe activity)。這個LocateMe activity在默認情況下是全屏的,因此,文本框將繼承這個屬性,並且文本框將在屏幕的左上角顯示。另外,必須為這個XML文件設置一個引用數,以便 Android可以在源代碼中找到它。在默認情況下,這些引用數被保存在R.java中,代碼如下:

publicfinalclassR{
publicstaticfinalclasslayout{
publicstaticfinalintmain=0x7f030001;
}
}

視圖也可以被嵌套,但和J2ME不同,我們可以將定製的視圖和Android團隊發布的Widgets一起使用。在J2ME中,開發人員被迫選擇 GameCanvas和J2ME應用程序畫布。這就意味著如果我們想要一個定製的效果,就必須在GameCanvas上重新設計我們所有的widget。 Android還不僅僅是這些,視圖類型也可以混合使用。Android還帶了一個 widget庫,這個類庫包括了滾動條,文本實體,進度條以及其他很多控制項。這些標準的widget可以被重載或被按著我們的習慣定製。現在讓我們來進入 我們的例子。


四、Android實例

這個演示應用程序將演示了用戶的當前的經度和緯度(在文本框中顯示)。onCreate構造方法將和上面的例子基本相同,除了在其中加入了鍵盤處理,現在 讓我們看一下onKeyDown的代碼。

publicbooleanonKeyDown(intkeyCode,KeyEventevent){
if(keyCode!=KeyEvent.KEYCODE_DPAD_CENTER||m_bLoading)
{
returntrue;
}
m_bLoading=true;
getLocation();
returntrue;
}

下面讓我們來解釋一下這段代碼,首先,這段代碼檢查了當前被按下的鍵,但還沒有開始處理。而是在getLocation方法中處理這一切的。然後,將裝載 flag標志以及調用getLocation方法,下面是getLocation方法的代碼。

privatevoidgetLocation(){
Locationloc;
LocationManagerlocMan;
LocationProviderlocPro;
List<LocationProvider>proList;
setContentView(R.layout.laoding);
locMan=(LocationManager)getSystemService(LOCATION_SERVICE);
proList=locMan.getProviders();
locPro=proList.get(0);
loc=locMan.getCurrentLocation(locPro.getName());
Lat=(float)loc.getLatitude();
Lon=(float)loc.getLongitude();
CreateView();
setContentView(customView);
}

到這為止,程序開始變得更有趣了。但是不幸的是,Google關於之方面的文檔還是比較少了。在程序的變數聲明之後,我們需要演示一些裝載信息。 R.layout.loading符合了另一個簡單的XML布局視圖。通過簡單地調用setContentView方法可以使用轉載信息重繪屏幕。
讀者要注意的是:在編譯時,Android會預先將所有的XML布局數據包裝起來。如果我們想在編譯後變化布局屬性,按著規定,我們必須在源程序中做這些 事。
獲得LocationManager的唯一方法是通過getSystemService()方法的調用。通過使用LocationManager, 我們可以獲得一個位置提供者的列表。在一個真實的手持設備中,這個列表包含了一些GPS服務。實際上,我們希望選擇更強大,更精確,最後不帶有其他附加服 務的GPS。現在,在模擬器中提供了一個用於測試的GPS,這個GPS來自San Francisco。定製的GPS文件可以可以被上傳,並進行測試。如果我們要測試更復雜的應用,來自San Francisco的GPS可能並不適合。
目前我們可以使用位置管理器和位置提供者進行getCurrentLocation的調用。這個方法返回本機的當前位置的一個快照,這個快照將以 Location對象形式提供。在手持設備中,我們可以獲得當前位置的經度和緯度。現在,使用這個虛擬的手持設備,我們可以獲得這個例子程序的最終結果: 建立了顯示一個定製的視圖。

五、使用定製視圖
在最簡單的窗體中,一個Android中的視圖僅僅需要重載一個onDraw方法。定製視圖可以是復雜的3D實現或是非常簡單的文本形式。下面的 CreateView方法列出了上面看到的內容。

publicvoidCreateView(){
customView=newCustomView(this);
}

這個方法簡單地調用了CustomView對象的構造方法。CustomView類的定義如下:

{
LocateMeoverlord;
publicCustomView(LocateMepCtx){
super(pCtx);
overlord=pCtx;
}
publicvoidonDraw(Canvascvs){
Paintp=newPaint();
StringsLat="Latitude:"+overlord.getLat();
StringsLon="Longitude:"+overlord.getLon();
cvs.drawText(sLat,32,32,p);
cvs.drawText(sLon,32,44,p);
}
}

這個定製的Android視圖獲得了經度和違度的測試數據,並將這些數據顯示在屏幕上。這要求一個指向LocateMe的指針,Activity類是整 個應用程序的核心。它的兩個方法是構造方法和onDraw方法。這個構造方法調用了超類的構造方法以及引起了Activity指針的中斷。onDraw方 法將建立一個新的Paint對象(這個對象封裝了顏色、透明度以及其他的主題信息),這個對象將會訪問顏色主題。在本程序中,安裝了用於顯示的字元串,並 使用畫布指針將它們畫到屏幕上。這個和我們了解的J2ME游戲的畫布看起來非常類似。

六、Android展望
從純粹的開發觀點看,Android是一個非常強大的SDK。它使用基於XML的布局和定製視圖聯合了起來。並可以使用滾動條、地圖以及其他的組件。所以 的這一切都可以被重載,或由開發人員來定製。但它所提供的文檔非常粗糙。在文檔中並沒有象SMS等技術,但是從整體上來看Android SDK,還是非常有希望的。也非常符合Google承諾的「First Look」SDK。現在我們要做的就是等待Google發布第一個基於Android的手機,並使用它。


如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】


希望我的回答對您有所幫助,望採納!


~O(∩_∩)O~

Ⅳ android開發怎麼獲得手機的gps

第一步,申明許可權。(5.0之後許可權需要動態申請,具體代碼和這個問題無關就不貼出來了)

<!--定位許可權-->

<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>

第二步通過LocationManager類獲取位置信息,下面是一個封裝好的工具類

**

*/3/15.

*獲取當前位置信息

*/

publicclassMyLocationUtil{

privatestaticStringprovider;

(){

//獲取當擾伏前位置信息

//獲取定位服務

=(LocationManager)MyApp.getContext().getSystemService(Context.LOCATION_SERVICE);

//獲取當前可用的位置控制器

List<String>list=locationManager.getProviders(true);

if(list.contains(locationManager.GPS_PROVIDER)){

//GPS位置控埋薯制器

provider=locationManager.GPS_PROVIDER;//GPS定位

}elseif(list.contains(locationManager.NETWORK_PROVIDER)){

//網路位置控制器

provider=locationManager.NETWORK_PROVIDER;//網路定位

}

if(provider!=null){

if(ActivityCompat.checkSelfPermission(MyApp.getContext(),Manifest.permission.ACCESS_FINE_LOCATION)!=PackageManager.PERMISSION_GRANTED&&ActivityCompat.checkSelfPermission(MyApp.getContext(),Manifest.permission.ACCESS_COARSE_LOCATION)!=PackageManager.PERMISSION_GRANTED){

//TODO:Considercalling

//ActivityCompat#requestPermissions

//,andthenoverriding

//(intrequestCode,String[]permissions,

//int[]grantResults)

//.Seethedocumentation

//forActivityCompat#.

returnnull;

}

LocationlastKnownLocation=locationManager.getLastKnownLocation(provider);

returnlastKnownLocation;

}else{

ToastUtils.makeText("請檢查網路或GPS是否打開");

}

returnnull;

}

}

第三步(其實到上一步這個問題已經解決了,這個算擴展吧)將位置信息轉換成地址信息。

在高德或者網路地圖開發者平台申請訪問api許可。將第二步獲取到的經緯度信息上傳查詢對應坐標信息。因為網路和高德用的不是同一個坐標系,查詢時仔細看官方API。


直接通過安卓的原生介面獲取一個gps的位置意義不是很大。這個數據在一定的坐標繫上才有意義。建議去高德的開發平台注冊個帳號,彎李者引入sdk來做,地理位置與地理位置解析的概念先了解下吧。


//第一步先獲取LocationManager的對象LocationManagerGpsManager=(LocationManager)this.getSystemService(Context.LOCATION_SERVICE);//通過LocationManager的對象來獲取到Location的信息。Locationlocation=GpsManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);//Location中經常用到的有以下幾種:/*location.getAccuracy();精度location.getAltitude();高度:海拔location.getBearing();導向location.getSpeed();速度location.getLatitude();緯度location.getLongitude();經度location.getTime();UTC時間以毫秒計*/註:需要添加使用許可權的哦


Ⅵ Android中定位系統怎麼實現呢求源代碼

1.得到系統定位服務
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
2.載入定位監聽
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
System.out.println(location.getLatitude() + " " + location.getLongitude());

}

@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub

}

@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub

}

};
3.得到最近一次監聽地址
Location loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
loc.getLatitude();
loc.getLongitude();

貧窮人士表示沒有安卓手機 不能測試下了 大概的流程記得是這樣

Ⅶ android 手機 地圖 定位 編程 如何獲取 定位的地點 的圖片 和 文字 信息

最近開發中使用的是網路地圖android SDK:
1、初始化地圖
2、注冊定位監聽器,初始化Location模塊
3、初始化定點陣圖層;啟用定位,啟用指南針,最後把定點陣圖層添加到地圖中。附簡單代碼:

//mMapView = (MapView) findViewById(R.id.bmapsView);
mMapView = new MapView(this); //初始化一個mapView 存放Map
mMapView.setBuiltInZoomControls(true);// 設置啟用默認的縮放控制項

locationManager = mBMapMan.getLocationManager();
/*
* 由於LocationListener獲取第一個位置修正的時間會很長,為了避免用戶等待,
* 在LocationListener獲取第一個更精確的位置之前,應當使用getLocationInfo() 獲取一個緩存的位置
*/
Location location = locationManager.getLocationInfo();
locationManager.requestLocationUpdates(this);

mMapController = mMapView.getController();// 得到mMapView的控制權,可以用它控制和驅動平移和縮放
if (location != null) {
mMapController.setCenter(new GeoPoint(
(int) (location.getLatitude() * 1E6), (int) (location
.getLongitude() * 1E6)));
}
mMapController.setZoom(12);// 設置地圖zoom級別

MyLocationOverlay mylocTest = new MyLocationOverlay(this, mMapView);
mylocTest.enableMyLocation();
mylocTest.enableCompass();
mMapView.getOverlays().add(mylocTest);
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub

if (location != null) {
mMapController.animateTo(new GeoPoint(
(int) (location.getLatitude() * 1E6), (int) (location
.getLongitude() * 1E6)));
}
}

如果你想點擊定位地點,顯示信息,你需要去擴展MyLocationOverlay圖層,它裡面有個public boolean onTap(GeoPoint p, MapView map) {}方法,是處理點擊事件的。

有問題,可以與我聯系,共同探討。

閱讀全文

與android手機定位代碼相關的資料

熱點內容
解壓最近的壓力 瀏覽:709
如何知道王牌戰爭新出來的伺服器 瀏覽:591
程序員建的房子 瀏覽:419
navicatlinux破解版 瀏覽:454
找個輔警或者程序員 瀏覽:452
軍團td預言命令 瀏覽:114
營指揮員下達作戰命令 瀏覽:258
exe打開指定文件夾 瀏覽:264
pdf裡面怎麼去水印 瀏覽:845
appleid賬號加密碼 瀏覽:220
蘋果如何下載微倉app 瀏覽:916
迅雷解壓進度為0 瀏覽:860
解壓解惑近義詞 瀏覽:316
壓縮比不一樣燃燒室不一樣 瀏覽:102
androidbutton左對齊 瀏覽:173
怎麼找到學校的伺服器 瀏覽:369
android狀態欄高度是多少 瀏覽:989
linuxcliphp 瀏覽:516
蘿卜源碼如何關閉用戶注冊驗證 瀏覽:757
蘋果手機頭條app怎麼沒有tv 瀏覽:564