8

アプリには次のようないくつかの権限があります

<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />

そして、私はそれらが実際には必要ないのではないかと疑っています.

Androidのドキュメントによると、それらはすべてそれを暗示しています

<uses-feature
    android:name="android.hardware.location"/>

は真実であり、必須です。

たとえば、これらのコマンドの 3 つのうち 2 つを取り出した場合、A-GPS 関連のすべての呼び出しはまったく同じように機能しますか?

Android ドキュメントを繰り返す人々を除いて、これに関する文献はあまりないようです。

最終的に、コードの非常に多くの要素に対して android:required = true であることを暗示することは、アクセスできるデバイスの量を制限していると思います。

 <uses-feature
    android:name="android.hardware.location" android:required="false"/>

より多くのデバイスにアプリを公開し、アプリ内で条件付きロジックを使用して、一部の機能を実行できるようにします。

しかし、私の主な問題は、android.hardware.location非常に多くの機能をカバーしていること<uses-permission/>です。のみandroid.hardware.location.ACCESS_MOCK_LOCATIONまたはなしandroid.hardware.location.CONTROL_LOCATION_UPDATESandroid.hardware.location

uses-permissionsここにはいくつかの仮定がありますが、Android 開発者向けドキュメントは実際には詳しく説明していませんuses-feature。必ずしも必要とされることを意図しておらず、Android SDK 呼び出しに実行権限があることを確認したい場合

質問:

1) これらの 3 つのうち 2 つを削除した場合uses-permissions、A-GPS 関連のすべての呼び出しは、これらの個別の権限がすべて設定されている場合とまったく同じように動作しますか?

2)android.hardware.locationより具体的になるか? 私は見android.hardware.location.NETWORKましたが、すべての可能性が何であるかをどこで見ることができますか?

4

1 に答える 1

5

したがって、たとえば、これらのコマンドの3つのうち2つを取り出した場合でも、A-GPS関連のすべての呼び出しはまったく同じように機能しますか?

そうですね、これら3つの権限のうち2つは必要ないはずです。ACCESS_MOCK_LOCATIONGPSとは何の関係もありませんが、あなた自身のモックロケーションプロバイダーとは関係があります。Cyril Mottierを引用するには:

アプリを公開する前に、マニフェストからACCESS_MOCK_LOCATION権限を削除してください。忘却はあなたをアマチュアにします。

また、通常のSDKアプリは保持できませんCONTROL_LOCATION_UPDATES。これは、ファームウェアの署名キーで署名されたアプリ、またはファームウェア自体にインストールされたアプリでのみ使用できます。

したがって、通常のSDKアプリは、本番用に両方を削除できCONTROL_LOCATION_UPDATES、開発用に削除できます。アプリでモックロケーションプロバイダーを使用していない場合はACCESS_MOCK_LOCATION、開発時に削除することもできます。ほとんどの場合、そもそもこれら2つの権限をアプリに追加してはいけません。

しかし、これは何の関係もありませ<uses-feature>ん。

アプリ内で条件付きロジックを使用して、一部の機能を実行できるようにすることができます。

絶対。を扱う前に、を使用hasSystemFeature()PackageManagerて持っているかどうかを確認できます。android.hardware.locationLocationManager

しかし、私の主な問題は、android.hardware.locationが非常に多くの機能をカバーしていることです。

「カバー」という動詞は、ここでは意味がありません。または、その範囲で、方向が逆になっています。<uses-permission>要素は要素を意味する場合<uses-feature>がありますが、その逆はありません。

これらの使用許可のうち3つのうち2つを削除した場合でも、A-GPS関連のすべての通話は、個別の許可をすべて設定した場合とまったく同じように機能しますか?

上記を参照。

android.hardware.location.NETWORKを見たことがあります

あなたは見たことがあるかもしれませんandroid.hardware.location.network

android.hardware.location.NETWORKを見たことがあります

のドキュメント<uses-feature>http ://developer.android.com/guide/topics/manifest/uses-feature-element.html

于 2012-09-28T17:04:52.427 に答える