これを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"/>
カスタム権限の使用は、他のアプリがアプリのサービス/リソースを起動/使用できるようにすることだと思いました。
これは、C2D_MESSAGE
権限で Google Cloud Messaging(GCM) を使用した場合と同じパターンです。アイデアは、アプリケーション(たとえば、ブロードキャストレシーバー)のエンドポイントを保護して、他のコンポーネント(おそらくMaps APIの一部)がエンドポイントに安全にアクセスできるようにすることです(そうでない場合、別のアプリケーションが同じインテントフィルターを使用してアプリケーションになりすます可能性があります)。
この場合、Maps APIはそのようなエンドポイントを(ユーザーに対して透過的に)内部で設定し、この権限を使用して、このエンドポイントを偽装できないようにすることができます(これを行うには権限が必要になるため、ユーザーによって保護されています)アプリケーション署名)。
この権限は、パッケージ名を指定します。つまり.
<permission
Android:name="package_name.permission.MAPS_RECEIVE"
Android:protectionLevel="signature"/>
<uses-permission Android:name="package_name.permission.MAPS_RECEIVE"/>
したがって、Google APIはプロジェクトがマップを受け取ることを許可するだけです。アクセス許可は、APIを使用する場所を示します。
デバッグ証明書を使用する場合も、この権限が必要であることがわかりました。アプリケーションをエクスポートして署名したところ、問題なく動作しましたが、デバッグ証明書を使用すると機能しませんでした。同じキーに関連付けられたデバッグ証明書とアプリケーション証明書の両方にMD5があります。最後にこれらの追加の権限を追加したところ、うまくいきました。私は4.4を実行するMoto Xをすべて最新の状態で使用しています。