1

現在、BB アプリケーションを開発しており、現在のポジションを取得する必要があります。

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;
}

ありがとう!

4

1 に答える 1

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 は、Cellsite がサポートされていないことを示していますが、他のサポートされているモードが利用可能です。GPS を使用する場合は、自律モードを呼び出す基準を指定する必要があります。

于 2012-05-29T13:59:05.560 に答える