サイト移転のお知らせ

しばらくブログお休みしていましたが、こちらに移転しました。よろしければこちらへどうぞ。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Android PACKAGE関連のbroadcast intentを試してみた

 Androidのreferenceを見るとPACKAGE関係のbroadcast intentがたくさんありますが、説明文だけではどんなときに発生するのかがよくわからないので、実験アプリを作って試してみました。
1. Google Play(旧Android Market)から新規にアプリをインストール
android.intent.action.ACTION_PACKAGE_ADDEDが飛んできました。
ま、予想どおり。

2. アプリをアンインストール
android.intent.action.ACTION_PACKAGE_REMOVEDが飛んできました。
これも予想どおり。

3. アプリをアップデート
android.intent.action.PACKAGE_REMOVED
android.intent.action.PACKAGE_ADDED
android.intent.action.PACKAGE_REPLACED
の順で3つ飛んできました。予想外でした。

4. サービスが動いているアプリをアップデート(グーグルのマップ)
一応やってみましたが、やはりとんでくるintentは3.と同じでした。
ちなみに、サービスのActive Sinceの値がリセットされていたので、一度サービスが停止して、再度起動する、という動きだと思われます。

5. アプリデータを消去
(設定->アプリケーション->アプリケーションの管理->アプリを選択->データを消去)
android.intent.action.PACKAGE_RESTARTED
android.intent.action.PACKAGE_DATA_CLEARED
の順で2つのIntentが飛んできました。
起動していないアプリのデータを消去したときでもRESTARTEDが飛んでくるのが意外でした。

6. アプリをSDカードに移動。逆に端末に移動
特に何もとんできませんでした。

7. (プリインアプリの)アップデートのアンインストール
android.intent.action.PACKAGE_REMOVED
android.intent.action.PACKAGE_ADDED
android.intent.action.PACKAGE_REPLACED
3.の普通のアップデートと同じでした。

余談ですが、1.3.4.5.7のケースで、停止していた「電話帳サービス」が起動するということも分かりました。

ちなみに、実験に使った端末はGingerBreadで、API Level 10。
なので、以下のIntentは試していません。
ACTION_PACKAGE_FIRST_LAUNCH (API Level 12)
ACTION_PACKAGE_FULLY_REMOVED (API Level 14)
ACTION_PACKAGE_NEEDS_VERIFICATION(API Level 14)
ACTION_MY_PACKAGE_REPLACED (API Level 12)

ACTION_MY_PACKAGE_REPLACEDは更新したアプリ自体に飛んでくるもののようなので、他のものとはちょっと扱いが違いますが便利そうなIntentですね。アプリ更新したときの更新情報を表示したりするのに使えそう。

なお、今回の実験では、ACTION_PACKAGE_CHANGED は発生させられませんでした。
該当するようなアプリのアップデートがあれば多分発生するんかな。

プログラムの注意点
PACKAGE関連のIntentのほとんどには、「パッケージ名のデータが入っている」とreferenceに書いてあるので、IntentFilterには以下のようにaddDataSchemeをしてやる必要があります。

IntentFilter filter = new IntentFilter(android.intent.action.PACKAGE_ADDED);
filter.addDataScheme("package");
registerReceiver(receiver, filter);

# receiverは、別途生成したBroadcastReceiverのインスタンスです。

関連記事
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

サイト内検索
プロフィール

Author:imxs

Androidアプリ開発などを行っているimxsの開発者です。気になることを調べてメモって行きます。ほとんどの人にはどうでもいい内容でも、広い世の中一人くらいは同じ疑問を持った奇妙な人がいることを信じつつ。暖かい目で見守ってやってください。
imxsの開発者ブログは移転しました。よろしければこちらへどうぞ。

カテゴリ
最新記事
リンク
RSSリンクの表示
最新コメント
最新トラックバック
FC2カウンター
アクセスランキング
[ジャンルランキング]
携帯電話・PHS
256位
アクセスランキングを見る>>

[サブジャンルランキング]
Android(Google)
64位
アクセスランキングを見る>>
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。