web-dev-qa-db-ja.com

Android Map V2-MAPS_RECEIVE権限が必要な理由

これをwikiの質問だと考えてください。

Map V2をサポートするようにプロジェクトをセットアップしている間、MAPS_RECEIVE権限を追加する手順がありました。

<permission
          Android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
          Android:protectionLevel="signature"/>
<uses-permission Android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>

アプリ自体から権限を作成して使用するのはなぜですか?

そのGoogle Play開発者サービスアプリは、この権限を使用して相互作用しますか?

この許可はこれらのことを処理できませんか?

<uses-permission Android:name="com.google.Android.providers.gsf.permission.READ_GSERVICES"/>

カスタム権限の使用は、他のアプリがアプリのサービス/リソースを起動/使用できるようにすることだと思いました。

32
Mahendran

今後の訪問者向け:

この許可は完全に不要になりました。 Google Play開発者サービス3.1.59の最新の更新により、役に立たなくなりました。その結果、それを削除することができます。

ソース

80
Androiderson

これは、C2D_MESSAGE権限で Google Cloud Messaging(GCM) を使用した場合と同じパターンです。アイデアは、アプリケーション(たとえば、ブロードキャストレシーバー)のエンドポイントを保護して、他のコンポーネント(おそらくMaps APIの一部)がエンドポイントに安全にアクセスできるようにすることです(そうでない場合、別のアプリケーションが同じインテントフィルターを使用してアプリケーションになりすます可能性があります)。

この場合、Maps APIはそのようなエンドポイントを(ユーザーに対して透過的に)内部で設定し、この権限を使用して、このエンドポイントを偽装できないようにすることができます(これを行うには権限が必要になるため、ユーザーによって保護されています)アプリケーション署名)。

6
Jeremy Roman

この権限は、パッケージ名を指定します。つまり.

  <permission
          Android:name="package_name.permission.MAPS_RECEIVE"
          Android:protectionLevel="signature"/>
  <uses-permission Android:name="package_name.permission.MAPS_RECEIVE"/>

したがって、Google APIはプロジェクトがマップを受け取ることを許可するだけです。アクセス許可は、APIを使用する場所を示します。

5
Manisha

デバッグ証明書を使用する場合も、この権限が必要であることがわかりました。アプリケーションをエクスポートして署名したところ、問題なく動作しましたが、デバッグ証明書を使用すると機能しませんでした。同じキーに関連付けられたデバッグ証明書とアプリケーション証明書の両方にMD5があります。最後にこれらの追加の権限を追加したところ、うまくいきました。私は4.4を実行するMoto Xをすべて最新の状態で使用しています。

3
TALE