0

java.lang.SecurityException: Selected service does not require android.permission.BIND_WALLPAPER

したがって、これは機能します:

<application android:icon="@drawable/icon"
    android:label="Wallpaper"
    android:permission="android.permission.BIND_WALLPAPER">

ただし、このシナリオでは、アプリは本質的にただの壁紙です。私のアプリは、壁紙がバンドルされた完全な機能を備えています。上記を使用すると、アプリ自体を実行できなくなります。壁紙を設定するだけです。

だから私は試しました:

<uses-permission android:name="android.permission.BIND_WALLPAPER" />

表示されたエラーが表示されます。プレビューが正常に実行されていることを確認できますが、適用または設定をクリックするとすぐに. ブームヘッドショット!

ああ、もちろん、同じエラーで権限を設定せずに試してみました

アプリを引き続き実行し、バンドルされた壁紙の使用を許可するにはどうすればよいですか。

4

2 に答える 2

1

許可と使用許可は、2 つの反対の概念です。

  • 許可には、要素を呼び出す人がこの許可を持っている必要があります
  • uses-permission は、この許可を要素に付与するようシステムに要求します

関連するアクティビティに許可要素を入れようとしましたか?

于 2012-09-21T14:53:46.720 に答える
1

Android maninfest.permissions doc によると

文字列: BIND_WALLPAPER : システムのみがバインドできることを保証するために、WallpaperService によって要求される必要があります。

実際、サービスにアクセス許可を追加すると。それは正常に動作します。システムがそれにのみバインドできることを確認するのは、セキュリティ例外です。

    <service android:name=".LiveWallpaper"
        android:label="Wallpaper"
        android:icon="@drawable/ic_launcher"
        android:permission="android.permission.BIND_WALLPAPER">
于 2012-09-21T14:53:56.830 に答える