3

Java ランタイム サポートを使用して、Android アプリを BlackBerry 10 OS に移植しています。現在、私のアプリは Android デバイスで正常に動作していますが、BlackBerry デバイスから位置情報の更新を取得できません。

私のマニフェストは COARSE_LOCATION パーミッションをリクエストします:

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

私のコードでは、Activity から位置情報の更新をリクエストします。

LocationListener listener = new LocationListener()
{
    public void onLocationChanged(Location location)
    {
        Log.v(TAG, "onLocationChanged");
        // Code to save returned location...
    }
    public void onStatusChanged(String provider, int status, Bundle extras) {}
    public void onProviderEnabled(String provider)  {}
    public void onProviderDisabled(String provider) {}
};
LocationManager lm = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener);
Log.v(TAG, "Registered network location listeners");

デバイスから出力された「登録済みリスナー」のログ行が表示されますが、「onLocationChanged」がログに記録されることはなく、提供された場所を保存するコードが呼び出されることもありません。

別の場所で、最後に確認された場所を取得しようとしました。

LocationManager lm = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
Location lastLocation = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

lastLocation は常に null です。

明確にするために、このコードは Android デバイスで正常に動作し、十分にテストされています。

また関連: BB10 デバイスは、マニフェストが COARSE_LOCATION のみを要求しているにもかかわらず、アプリに GPS 位置情報のアクセス許可があるが、通常の位置情報のアクセス許可がないことを報告します。関係あるかも?

アップデート:

BlackBerry サポートのオープン チケットを持っています。彼らは、「これは既知の問題であり、内部開発で修正中です」と言っています。

4

2 に答える 2

2

バー記述子 xml ファイルに設定された地理的位置の読み取り権限がありますか?

http://developer.blackberry.com/air/documentation/bb10/r_barfile_dtd_ref_permission.html

于 2013-03-17T16:30:04.103 に答える
1

問題は BlackBerry Android ランタイムにありました。OS 10.1 で修正されました。

サポート チケットはこちら (現在は終了しています): https://www.blackberry.com/jira/browse/BBTEN-999

このフォーラム スレッドも参照してください: http://supportforums.blackberry.com/t5/Android-Runtime-Development/Can-not-fetch-location-using-network-provider/mp/2424553#M5040

于 2013-06-12T19:48:13.050 に答える