4

Android用のランチャー(ホームスクリーン)アプリケーションを開発しているときに、理解できないセキュリティ例外が発生しました。

  • Launcherアクティビティ内から[bindAppWidgetId()] [1]メソッドを呼び出すと、次のセキュリティ例外が発生します。

08-19 11:30:11.689:ERROR / AndroidRuntime(6032):java.lang.SecurityException:bindGagetId appWidgetId = 99 Provider = ComponentInfo {com.android.music / com.android.music.MediaAppWidgetProvider}:ユーザー10034にはandroid.permission.BIND_APPWIDGET。

マニフェストでBIND_APPWIDGET権限を忘れたと最初に思ったのですが、間違いなくそこにあります。

android apiのドキュメントには、次のように記載されています。

「APPWIDGET_LIST権限が必要です。このメソッドはAppWidgetピッカーによって使用されます。」

権限android.permission.APPWIDGET_LISTを追加しようとしましたが、問題は解決しません。

また、AppWidgetPickActivityコードを含むAndroidソースからの設定アプリケーションのマニフェストを見ました:ユーザーIDを共有するように求める特別な行があります:

"android:sharedUserId =" android.uid.system "

それは私の問題に関連しているのでしょうか?

誰かが素晴らしいアイデアを持っているなら!

乾杯、ローラン

4

2 に答える 2

6

答えを見つけました!

BindAppWidgetId()は、アプリケーションでは意図的に使用できません。(セキュリティの問題)。

「android.permission.BIND_APPWIDGET権限はシステム権限です。パッケージがシステムパッケージとしてインストールされている場合(/ data/appではなく/system/ appにインストールされている場合)、または証明書を使用してアプリに署名した場合にのみ、その権限を取得できますこれはAndroidイメージと同じです。つまり、基本的に、この権限は、プラットフォーム/電話でAndroidイメージの作成者でもある場合にのみ使用できることを意味します。」

この情報へのリンクは次のとおりです。

http://groups.google.com/group/android-developers/browse_thread/thread/231245ba6d1e690f/047b9d3f776d7e54?lnk=gst&q=bindAppWidgetId#047b9d3f776d7e54

http://groups.google.com/group/android-developers/browse_thread/thread/f24e0f484a79d529/ef84188e8533a125?lnk=gst&q=bindAppWidgetId#ef84188e8533a125

于 2010-08-27T08:47:51.500 に答える
0

android.permission.APPWIDGET_LISTGoogleですばやく検索すると、APIドキュメントにリストされていなくても、それが使用可能な権限であることがわかります。

于 2010-08-19T15:01:58.227 に答える