2012-05-28 59 views
1

我目前正在開發一個BB應用程序,我需要獲得我的當前位置。SDK 5.0及更高版本中的條件和GPS

在v5.0的BB模型中沒關係,但是在v6.0版本的BB中我總是將locationProvider作爲null。 (GPS打開)。

任何人都有一個想法,可能發生什麼,以及如何解決它?

的一塊,我使用的代碼是:

private boolean startLocationUpdate() { 
    boolean retval = false; 

    try { 
     Criteria criteria = new Criteria(); 
     criteria.setCostAllowed(true); 
     criteria.setHorizontalAccuracy(Criteria.NO_REQUIREMENT); 

     criteria.setVerticalAccuracy(Criteria.NO_REQUIREMENT); 
     criteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW); 

     locationProvider = LocationProvider.getInstance(criteria); 

     if (locationProvider == null) { 

      Runnable showGpsUnsupportedDialog = new Runnable() { 
       public void run() { 

        Dialog.alert("GPS is not supported on this platform..."); 
        // System.exit(1); 
       } 
      }; 

      UiApplication.getUiApplication().invokeAndWait(
        showGpsUnsupportedDialog); // Ask event-dispatcher 
               // thread to display dialog 
               // ASAP. 
     } else { 

      locationProvider.setLocationListener(
        new LocationListenerImpl(), interval, 1, 1); 

      retval = true; 
     } 
    } catch (LocationException le) { 
     System.err 
       .println("Failed to instantiate the LocationProvider object, exiting..."); 
     System.err.println(le); 
     System.exit(0); 
    } 
    return retval; 
} 

謝謝!

回答

0

根據Criteria的API文檔,您正在請求Cellsite模式。對於LocationProvider.getInstance()的說明文件:

a LocationProvider meeting the defined criteria or null if a LocationProvider that meets the defined criteria can't be returned but there are other supported available or temporarily unavailable providers that do not meet the criteria. 

所以API是告訴你,小區站點不被支持,但也有其他支持的模式。如果你想使用GPS,你需要指定一個調用Autonomous模式的Criteria。

+0

我試過不同的供應商,結果是一樣的:S。這真的很奇怪,只有在BB火炬不起作用。感謝您的幫助:) – oriolpons

+0

我一直在7.0和7.1工作了一段時間。我不記得6.0的任何問題。我正常使用空標準。 – Richard

相關問題