web-dev-qa-db-ja.com

READ_PHONE_STATE権限が追加されたのはなぜですか?

Playストアに公開したばかりの最新のベータ版では、以前のバージョンからREAD_PHONE_STATEが追加されています。

私はこれを自分で追加していません。以前のバージョンでは、v9.6.0のさまざまなplay-servicesライブラリ(v9.4.0だった)を使用しているので、覚えていることはすべてあります。

compile 'com.google.Android.gms:play-services-location:9.6.0'
compile 'com.google.Android.gms:play-services-places:9.6.0'
compile 'com.google.Android.gms:play-services-auth:9.6.0'

これでできたでしょうか?私はそれが文書化されているのを見ることができません。許可を取り消すことはできますか?

this answer ...のように、使用しているすべてのライブラリがメインアプリと一致することを確認しました。私の場合は違いはありません。

[〜#〜] edit [〜#〜]

この記事 に基づいてOK、私はログ出力を掘り下げて見つけました:

ADDED from [Meteogram:jobdispatcher:unspecified] C:\Users\Me\AndroidStudioProjects\Meteogram\app\build\intermediates\exploded-aar\Meteogram\jobdispatcher\unspecified\AndroidManifest.xml:37:25-84 Android:uses-permission#Android.permission.READ_PHONE_STATE

しかし、前回のバージョン以降、jobdispatcherライブラリ(gradleモジュールとしてプロジェクトにインポートした)には何も変更がありません。

EDIT2

ここにそのログからもう少しありますが、私の考えでは、おそらくそれは疑わしいプレイサービスライブラリバージョンによるものだと思いますか?

ADDED from [Meteogram:jobdispatcher:unspecified] C:\Users\Me\AndroidStudioProjects\Meteogram\app\build\intermediates\exploded-aar\Meteogram\jobdispatcher\unspecified\AndroidManifest.xml:37:17-87
    Android:name
        ADDED from [Meteogram:jobdispatcher:unspecified] C:\Users\Me\AndroidStudioProjects\Meteogram\app\build\intermediates\exploded-aar\Meteogram\jobdispatcher\unspecified\AndroidManifest.xml:37:25-84
Android:uses-permission#Android.permission.READ_PHONE_STATE
IMPLIED from C:\Users\Me\AndroidStudioProjects\Meteogram\app\src\pro\AndroidManifest.xml:2:1-12:12 reason: com.google.Android.gmscore.integ.client.location has a targetSdkVersion < 4
activity#com.google.Android.gms.common.api.GoogleApiActivity

targetSdkVersion < 4は上記の他の回答と一致しますが、play-servicesライブラリは私のものではないので、この状況でできることはありますか?

EDIT3

私は答えを見つけました...この質問を削除するのではなく、他の人にとって有用な場合(および他の誰かがより良い解決策を持っている場合!)に解決策を残します

EDIT4

9.6.1で修正されたようです。

25
drmrbrewer

結局、同じ問題を報告する this が見つかりました。回避策の1つは Answer# に記載されています。これは、許可を「手動で」削除することです(私の許可では、許可は非常に早いAndroidバージョン、私のminSdkは16)なので、これは問題ありません:

<manifest ...
    xmlns:tools="http://schemas.Android.com/tools"
    ... >

<uses-permission
    Android:name="Android.permission.READ_PHONE_STATE"
    tools:node="remove" />
29
drmrbrewer

この問題は、Play Services v 12.0.0にも存在します。オープン ここに問題追跡ツール があります。問題は両方の権限に存在するようです:

  • Android.permission.READ_PHONE_STATE
  • Android.permission.WRITE_EXTERNAL_STORAGE

(元の質問からの)10.0.1修正で見たように、おそらく12.0.1で修正されるでしょう。

それまでは、drmrbrewerの回答に記載されているように、マニフェストから許可を手動で削除することをお勧めします。

更新
12.0.1は、この問題に対処した2018年3月28日にリリースされました。 ここのリリースノートを参照

不足しているminSdkVersionを-licenseアーティファクトに追加して、READ_PHONE_STATEおよびREAD_EXTERNAL_STORAGE権限が自動的に含まれないようにします。

22

#2を更新バージョン10.0.1 は問題を再度修正します。

Updatethis post で報告されているように、これはGoogle Playサービスのバージョン10.0.0でも発生します。

前の回答:

Android Developers G + Community)のこの投稿 ごとに、モデレーターの1人(私)がこのコメントを投稿しました。

開発者が指摘した昨日、私はすでにこの問題を社内で報告しました。修正はすでに社内で行われ、更新されたSDKが近日公開されます

更新されたSDKが利用可能になりました-9.6.1 Google Playサービスの依存関係を使用してください。

20
ianhanniballake

Firebaseのバージョン12.0.0に関連する問題を探している人は、バージョン12.0.1にアップグレードしてください。これは、12.0.0のパッケージングの誤りであり、12.0.1で解決されました。

リリースノートを確認してください: https://developers.google.com/Android/guides/releases

6
Henrique Monte

Android(私のように!)の経験がなく、drmrbrewerのスニペットがどこに行くべきかわからない場合、答えはメインのapp/manifests/AndroidManifest.xmlファイル、次のように:

  <manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
      xmlns:tools="http://schemas.Android.com/tools"
      package="com.your.package">

      ...

      <!-- attempt to combat this issue: https://stackoverflow.com/questions/39668549/why-has-the-read-phone-state-permission-been-added -->
      <uses-permission
          Android:name="Android.permission.READ_PHONE_STATE"
          tools:node="remove" />
      <uses-permission
          Android:name="Android.permission.WRITE_EXTERNAL_STORAGE"
          tools:node="remove" />
  </manifest>
4
xaphod

同じ問題に直面した。 Googleが新しいバージョンをリリースすることを確認しました。 12.0.1または最新バージョンに更新します。この問題はなくなります。

1
Jakir Hossain