タグ「Permisson」 の検索結果(1/1)

2010年4月 2日

Androidアプリ:Permissions 改め Permission Viewer

2010.06.06.追記
パーミッション閲覧アプリPermission ViewerはMarketでの公開を始めました
マーケット直接はこちらから→market://search?q=pname:youten.redo.pview

以前のエントリなんでPermissionってこんなに細分化されてるんだろうで開発したアプリを、本日は時間がそこそことれそうなので、以下の要領でブラッシュアップ。

perms2.pngのサムネール画像

【仕様】
・インストールされているアプリのパーミッション情報を表示するアプリです。
・アプリ名の上に表示されている細い短冊1枚1枚がパーミッション1つ1つに該当します。
・アプリ名をタップすると短冊の色を背景色にしたパーミッションリストが表示されます。

【今日やろう】
1. パーミッションリストがスライドしないのでDialogで表示させよう。→DONE
2. 最初の読み込み中にwaiting Dialogを表示させよう。→DONE
3. パーミッションの名前だけだとよく分からないので説明を加えよう。 →DONE

【放置しよう】
・Android1.5用でつくってしまったので解像度関連はスルーです。
・横にも縦にもはみでるのでScrollView+HorizontalScrollViewの十字スクロールです。

2010.04.02 16:15追記
1. と 2. が完了。
設定→アプリケーションの管理から確認できるパーミッション説明文言はシステムリソース中に発見。...命名規則等をきちんと追いかけられるかは微妙ですが。

perms5.png

2010.04.02 21:30追記
作業再開。システムリソースを追うと、platforms\android-2.1\data\res\values-ja\strings.xmlに以下の様な記述があって、パーミッション文字列からこのリソース文字列を取得する方法があれば良さそうです。


<string name="permgrouplab_storage" msgid="1971118770546336966">"ストレージ"</string>
<string name="permgroupdesc_storage" msgid="9203302214915355774">"SDカードにアクセスします。"</string>
<string name="permlab_statusBar" msgid="7417192629601890791">"ステータスバーの無効化や変更"</string>
<string name="permdesc_statusBar" msgid="1365473595331989732">"ステータスバーの無効化やシステムアイコンの追加や削除をアプリケーションに許可します。"</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"ステータスバーの拡大/縮小"</string>
<string name="permdesc_expandStatusBar" msgid="7088604400110768665">"ステータスバーの拡大や縮小をアプリケーションに許可します。"</string>
<string name="permlab_processOutgoingCalls" msgid="1136262550878335980">"発信の傍受"</string>
<string name="permdesc_processOutgoingCalls" msgid="2228988201852654461">"通話発信とダイヤルする番号の変更をアプリケーションに許可します。悪意のあるアプリケーションが発信を監視、転送、阻止する恐れがあります。"</string>
<string name="permlab_receiveSms" msgid="2697628268086208535">"SMSの受信"</string>
<string name="permdesc_receiveSms" msgid="6298292335965966117">"SMSメッセージの受信と処理をアプリケーションに許可します。悪意のあるアプリケーションがメッセージを監視したり、表示せずに削除する恐れがあります。"</string>

2010.04.02 22:30追記
context.getResources().getIdentifier(resourceName, "strings", context.getPackageName());
で期待する説明文言が取得できませんでした。

Eclipse上でandroid.R.id.でCtrl+spaceしてみると確かにpermsで始まるリソースは無い。
つまるところSDK非公開リソースということらしい、残念。

しょうがないのでstring.xmlの中身を移植します。かっこ悪い。

2010.04.02 23:15追記
そんなわけでできました。目標達成。

perms6.png

localをenに変更してもきちんと動いてる様なのでokっぽい。

2010.04.09 21:00 追記
【今からやろう】
・"全"パーミッションを定義したダミーアプリの作成。→DONE
・一部リソース定義の無いpermissionがあるっぽいです。どこに定義されているんだろう。 →定義名を修正したり一部新しい定義を追加したりして対応。DONE

2010.04.09 21:45 追記
ちょっと脱線

してましたが、110個ぐらいのPermissonを設定したアプリを作ってみました。

perms7.png

perms8.png

ある程度のグループでまとまってしまう様です。なおさらパーミッションと定義と内容の対応が分かりにくいような...。

2010.04.09 23:30 追記 ver.1.0.1 更新
・タップしても表示されなかったパーミッションがあったのを修正。
・3帯ずつ同色を使ってたのがよく見るとバレバレだったのでもう少し滑らかにグラデする様修正。

perms9.png

青のあたりが暗めで見にくいんですがまぁそれはしょうがないということで...。

【そのうちやろう】
・初回起動時とメニューから「パーミッションとは」というおべんきょうダイアログを表示。