android에서 지리적 위치를 가져올 때null
import android.app.Activity;
import android.content.pm.PackageManager;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.Bundle;
import android.widget.TextView;
import java.util.Iterator;
import java.util.List;
public class LocationBase extends Activity {
private TextView myText;
private String textStr = "";
private LocationManager mgr = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addText("Location Based-Services Demo...");
// 1:
mgr = (LocationManager) getSystemService(LOCATION_SERVICE);
addText("get system Location Manager " + mgr);
}
// 2.2 update: , , removeUpdates(), Activity ,App ,
protected void onPause() {
super.onPause();
PackageManager pm = getPackageManager();
boolean permissionFine = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.ACCESS_FINE_LOCATION", getPackageName()));
boolean permissionCoarse = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.ACCESS_COARSE_LOCATION", getPackageName()));
if (permissionFine == true && permissionCoarse == true) {
mgr.removeUpdates(onLocationChange);
}
addText("Remove Updates...");
}
// 2:
// 2.1(1) : onResume() , onPause() 。 Activity 。 Activity
protected void onResume() {
super.onResume();
mgr.addTestProvider(LocationManager.NETWORK_PROVIDER,
"requiresNetwork" == "", "requiresSatellite" == "", "requiresCell" == "", "hasMonetaryCost" == "",
"supportsAltitude" == "", "supportsSpeed" == "",
"supportsBearing" == "", android.location.Criteria.POWER_LOW,
android.location.Criteria.ACCURACY_FINE);
mgr.setTestProviderEnabled(LocationManager.NETWORK_PROVIDER, true);
PackageManager pm = getPackageManager();
boolean permissionFine = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.ACCESS_FINE_LOCATION", getPackageName()));
boolean permissionCoarse = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.ACCESS_COARSE_LOCATION", getPackageName()));
addText("Request Updates automatically ...");
List list = mgr.getAllProviders(); //mgr LocationManager
for (Iterator i = list.iterator(); i.hasNext(); ) {
System.out.println("\t" + i.next());
}
Criteria criteria = new Criteria();
String providerName = mgr.getBestProvider(criteria, true /*enabledOnly*/); //criteria null,
LocationProvider provider = mgr.getProvider(providerName);
location = mgr.getLastKnownLocation(providerName);
if (permissionFine == true && permissionCoarse == true) {
// 2.1 (2): , , , , 。 , requestLocationUpdates (long minTime, float minDistance, Criteria criteria,PendingIntent intent), Activity。 , GPS, 。
while(location == null) {
mgr.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 100/*10 , */, 0.1f/*1 */, onLocationChange/* */);
}
}
if (location != null)
System.out.println("Get Location from " + providerName + " : " + location.getLatitude() + "," + location.getLongitude());
}
Location location;
// 3: LocationListener , onLocationChanged( )
LocationListener onLocationChange = new LocationListener() {
public void onLocationChanged(Location location2) {
location = location2;
addText("Location Changed : (" + location.getLongitude() + "," + location.getLatitude() + ")");
}
public void onProviderDisabled(String arg0) {
addText("onProviderDisabled");
}
public void onProviderEnabled(String arg0) {
addText("onProviderEnabled");
}
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
addText("onStatusChanged");
}
};
private void addText(String s) {
textStr = textStr.concat(s + "
");
myText.setText(textStr);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.