2016-05-03 16 views
0

Androidバージョン6.0.1を実行しているNexus 5のバグを再現する非常に小さなデモアプリを作成しました。このアプリはgithubにあります:https://github.com/lexi-sr/LayerPermissionAndroidのレイヤライブラリ依存関係を追加するとrequestPermissionsダイアログが表示されない

私は最近、API 23をターゲットにして実行時にアクセス許可を要求する2つのコミットを追加しましたが、それでも動作しませんでした。これら2回のコミットで

、それはこれらの設定があります。

  • ターゲットSDK:23
  • は、レイヤ0.20.3

1をコンパイル)「コミット削除層の依存関係で可能にパーマネントを要求するためのポップアップダイアログ... "、レイヤ依存関係を持たない場合: メソッドActivityCompat.requestPermissionsは、連絡先権限を要求するダイアログボックスを開き、onRequestPermissionsResultメソッドは、パーミッションが付与されたことを記録します。 ActivityCompat.requestPermissions任意のダイアログを開きますが、onRequestPermissionsResult内のログ文はまだ印刷し、それは持っていないことをログインしていません:それは層の依存関係を持っているところ「の権限を要求することは動作しません」コミットで

2)許可。

レイヤー依存関係を追加すると、実行時にアクセス許可を要求する機能が抑制されているようです。なぜこうなった?

答えて

1

幸いにも、レイヤーサポートチームが私にこれを手伝ってくれました。デモアプリケーション(SDK 23をターゲットにしたもの)私の実際のアプリケーション(実行時にアクセス権を要求しないように、SDK 22をターゲットにしたもの)で私の問題を解決しました。 tools:node="replace"をGET_ACCOUNTSの使用許可行に入れた後、ポップアップダイアログが表示され、デモアプリケーションで権限が許可され、SDK 22をターゲットとした実際のアプリケーションにアクセス権が失われなくなりました。

ここでは、レイヤのサポートチームからの詳細な説明は次のとおりです。

SDKが18の maxSdkVersionを使用してGET_ACCOUNTS許可がマニフェストは これはあなたのマニフェストに許可要求を上書きしているマージされ得るときということを思わ要請する層は、 、 このように19 +の許可を要求していません。 ツールを追加してみてください:node =あなたのアプリのマニフェストのパーミッションに "置き換える"のですか? ラインは、のように読んでください: http://developer.android.com/guide/topics/manifest/uses-permission-element.html

ツールについてはこちらをご覧ください:

<uses-permission android:name="android.permission.GET_ACCOUNTS" tools:node="replace" /> 

がmaxSdkVersionのドキュメントはこちらを参照してください。ノードのドキュメント: http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-tools:node-markers

ピーター

関連する問題