[英]ICS Android enable gps programmatically?
我知道這個問題在這里有很多問題,但只是想知道自從ICS發布以來,是否有辦法以編程方式啟用gps?
我正在嘗試啟用gps並將設備的位置發送到電子郵件,應用程序將在收到短信時啟動。
有沒有辦法以編程方式啟用gps?
我希望不會,因為這將是一個隱私缺陷。 AFAIK,允許惡意軟件以編程方式啟用GPS的所有已知漏洞現已關閉。
我正在嘗試啟用gps並將設備的位置發送到電子郵件
用戶控制是否啟用GPS。
正如馬克所說,我當然希望不要因為用戶想要關閉的東西當然不是一件好事;-)
你當然可以要求用戶這樣做(你可能已經找到了,但是這里的參考是一種從記憶中這樣做的一種平凡的方式)
LocationManager L = (LocationManager) getSystemService(LOCATION_SERVICE);
if (!L.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Intent I = new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(I);
}
要讓用戶啟用GPS,請查看此鏈接
下面是一個函數的內部,它試圖按降序精度順序獲取最后一個已知的GPS位置。 如果用戶未啟用GPS,則無法啟用它。 您可以做的最好的事情是抓住最后一個已知位置,或者提示他們啟用GPS。 每當用戶在另一個應用程序中使用GPS並獲得新坐標或連接到無線網絡時,最后的已知位置將會改變。 我想你可以編寫一個后台服務,每隔5-10分鍾輪詢一次這些數據並發送給你。 雖然,我不同意你似乎在使用這個應用程序的方向。 大聲笑。 對於科學!
LocationManager lm = (LocationManager)act.getSystemService(Context.LOCATION_SERVICE);
Criteria crit = new Criteria();
crit.setAccuracy(Criteria.ACCURACY_FINE); String provider = lm.getBestProvider(crit, true);
Location loc = lm.getLastKnownLocation(provider);
if(loc){
return loc;
}
lm = (LocationManager)act.getSystemService(Context.LOCATION_SERVICE);
crit = new Criteria();
crit.setAccuracy(Criteria.ACCURACY_COARSE);
provider = lm.getBestProvider(crit, true);
loc = lm.getLastKnownLocation(provider);
if(loc){
return loc;
}
lm = (LocationManager)act.getSystemService(Context.LOCATION_SERVICE);
crit = new Criteria();
crit.setAccuracy(Criteria.NO_REQUIREMENT);
provider = lm.getBestProvider(crit, true);
loc = lm.getLastKnownLocation(provider);
return null;
您必須要求用戶輸入權限:
Intent gpsOptionsIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(gpsOptionsIntent);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.