2011-10-11 392 views
0

由於條件爲空,我有以下代碼崩潰。由於空標準導致Android崩潰

由於某些原因,字符串最好爲空。任何想法爲什麼?

private void startGPS() { 
    Criteria criteria = new Criteria(); 
    criteria.setAccuracy(Criteria.ACCURACY_FINE); 
    criteria.setPowerRequirement(Criteria.NO_REQUIREMENT); 

    String best = locationManager.getBestProvider(criteria, true); 

    Log.v(DEBUG_TAG, "Best provider: " + best); 

    locationManager.requestLocationUpdates(best, 50, 0, this); 

} 
+0

你試圖實現什麼?任何崩潰日誌? –

回答

1

getBestProvider(criteria, true)只會返回啓用供應商。既然你要求Criteria.ACCURACY_FINE你應該得到GPS,但如果它沒有啓用,你會得到null

+0

是的,謝謝你傻我,我沒有得到我的清單正確的許可,所以它不斷崩潰,因爲這一點。 –

+0

您能否提供您所需的權限?我面臨同樣的問題。 – Pallavi

+0

權限如下:\t \t

1

從文檔:被允許由調用活動訪問將返回

「只有供應商如果有幾個供應商符合標準,則返回一個最好的準確性如果沒有供應商滿足。標準按照以下順序排列:[...]「

這意味着如果標準太嚴格,則搜索下一個最佳標準。如果沒有提供者被啓用,或者如果你沒有訪問提供者的權限,那麼將返回null。

檢查您的清單。還請檢查getProviders();的結果並使用false參數,以查看哪些提供程序可用。