2016-12-31 10 views
0

すべて:AndroidスタジオでアプリでAndroid Wearのアクセス権を設定する

私が書いたAndroidの時計の顔について、これらのAndroidプライバシーポリシーの通知があります。 Androidスタジオに書きましたが、次の権限があります。

android.permission.ACCESS_NETWORK_STATE 
android.permission.GET_ACCOUNTS 
android.permission.INTERNET 
android.permission.READ_EXTERNAL_STORAGE 
android.permission.USE_CREDENTIALS 
android.permission.WAKE_LOCK 
android.permission.WRITE_EXTERNAL_STORAGE 
com.google.android.c2dm.permission.RECEIVE 

私は本当にそれらのすべてを必要としません。私は本当にWAKE_LOCKだけが必要だと思っています。私はもう一つ考えます。どんな種類の文章、ネットワークへのアクセス、その他のものも使用しないでください。

しかし、奇妙なことは、私はこれらの権限がどこにある私のアプリのどこにも見つからないということです。これは私の着用マニフェストです:

<?xml version="1.0" encoding="utf-8"?> 

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

<!-- Required to act as a custom watch face. --> 
<uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.DeviceDefault" > 
    <service 
     android:name=".MorseWatchFace" 
     android:label="@string/my_digital_name" 
     android:permission="android.permission.BIND_WALLPAPER" > 
     <meta-data 
      android:name="android.service.wallpaper" 
      android:resource="@xml/watch_face" /> 
     <meta-data 
      android:name="com.google.android.wearable.watchface.preview" 
      android:resource="@drawable/preview_digital" /> 
     <meta-data 
      android:name="com.google.android.wearable.watchface.preview_circular" 
      android:resource="@drawable/preview_digital_circular" /> 

     <intent-filter> 
      <action android:name="android.service.wallpaper.WallpaperService" /> 

      <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" /> 
     </intent-filter> 
    </service> 

    <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 
</application> 

そして、これは私の携帯電話のマニフェストです:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="monte.morsewatch"> 

<application android:allowBackup="true" android:label="@string/app_name" 
    android:icon="@mipmap/ic_launcher" android:theme="@style/AppTheme"> 

</application> 

私は何かが欠けています知っています。電子メールでは1月30日まで修正すると言っていたが、修正するために何を変更する必要があるのか​​分からない。

大変助かりました。

答えて

0

このdocumentationから、ユーザーはアプリのハンドセットバージョンとは別にWearアプリにアクセス許可を与える必要があります。 以前は、ユーザーがWearアプリをインストールしたときに、ユーザーがアプリのハンドセット版に付与した一連の権限を自動的に継承していました。あなたのアプリに許可が必要であることを宣言するには、app manifest<uses-permission>要素を最上位の<manifest>要素の子として配置することが適切です。

このSO threadは、アプリで不要な権限を削除する方法にも役立ちます。

余分な権限は、おそらくGoogleの プレイサービスの一部によって追加されている - とそれはおそらくあなたが やっていることのためにそれらを必要としません。

解決策#1は、実際に必要とするGoogle Playサービスの部分のみを使用することです。 余分な権限の数を必要 - 全体プレイServicesライブラリにもたらすでしょうしかし

dependencies { 
    compile com.google.android.gms:play-service:8.4.0 
} 

、:あなたの着用モジュールのbuild.gradleファイルでは、 このようなエントリがあるかもしれません。

compile com.google.android.gms:play-services-wearable:8.4.0 

...または、おそらく他の特定のモジュール:これはよくあなたが必要なのはこれです ことかもしれません。しかし要点は、必要以上に を含めないでください。

あなたは限りすることができますようにバックdependenciesを切り詰めてきた、とあなたはまだマージされたマニフェストに追加の許可を得て している場合、あなたは溶液#2 必要があるかもしれない - 私は別の答えに詳細に記載さ: https://stackoverflow.com/a/31017339/252080

希望します。

+0

コメントありがとうございます!私はそれをチェックします。一方、ここでは、ウェアモジュールの私のGradleビルドの関連部分です: 依存性{ コンパイルfileTree(dir: 'libs'、include:['* .jar']) コンパイル 'com.google.android.support:ウェアラブル:1.3.0 ' コンパイル' com.google.android.gms:play-services-wearable:8.1.0 ' } 私は最初の行が必要か、プロジェクトがコンパイルされないようです。 – MJR

+0

これは私の問題を解決したようです。それが再び収穫したら、私はメモをします。 – MJR

関連する問題