2015-11-03 134 views
0

我想在android系統使用GPS,但它給了我這個錯誤:的Android程序請求的權限

enter image description here

我把清單這些權限

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

誰能幫助我,請

+0

在最新的Android版本中,我們可以能夠限制有兩種權限的權限正常和安全的位置管理服務需要在安全許可,你需要檢查它的用戶被允許存取權限許可 – dileep

回答

0

提示暗示:用戶可能會拒絕權限。在這種情況下,這個調用將會拋出錯誤...

現在,android要求用戶接受應用程序在安裝時要求的所有權限。在即將到來的M版本中,android會根據「需要」切換到iOS風格的權限。

調用此方法查看是否授予權限。如果沒有,你需要處理這種情況。

context.checkCallingPermission(permission) 

聲明清單中的權限僅意味着您正在請求權限。在新版本中,它不能保證用戶會給你這樣的權限。

在舊版本的用戶必須接受所有或拒絕所有權限

+0

因此,正如你所說的那樣,如果用戶不允許應用程序使用Gps或網絡,程序將正常工作並且不起作用。但是當我在啓用了GPS接入的模擬器上運行它時,應用程序停止了。 – Saleh923

+0

@ Saleh923是的,如果用戶拒絕權限,應用程序可能會崩潰。 請檢查模擬器崩潰的原因是什麼......可能是由於不同的問題! 順便檢查一下你的模擬器是否可以模擬GPS /網絡。 最好是在設備上測試 –

0

這實際上並不是一個錯誤,而是一個由林特提出並可能導致問題的提示!

希望您瞭解Android 6.0(Marshmallow)中引入的新權限模型,用戶可能不允許使用GPS或網絡或其他任何軟件,因此可能會在您的應用程序中導致問題!

現在,根據lint分析,在實現特定功能之前,您應該檢查相同的權限是否可用!

+0

所以你說,意味着,如果用戶不允許應用程序使用Gps或網絡,該程序將正常工作並且不會工作。但是當我在啓用GPS接入的模擬器上運行它時,應用程序停止運行 – Saleh923

0

此條件檢查允許用戶訪問讀取位置的權限

if(checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)== PackageManager.PERMISSION_GRANTED||checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { 
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER,meter,mill,new locationlist(this)); 
}