私は、外部パッケージが見つからない可能性を扱うことによってパッケージをインストールする必要があることをユーザーに通知する最善の方法を探しています。Android C2DM - スタートサービスのインテントを処理する最良の方法は見つかりませんか?
私はC2DMMessagingクラスのTODO: if intent not found, notification on need to have GSF
を実装したいのです。この特定のケースでは、私は、エラーW/ActivityManager( 60): Unable to start service Intent { act=com.google.android.c2dm.intent.REGISTER pkg=com.google.android.gsf (has extras) }: not found
を探すべきだと考えていますしかし、どのようにトラップそのエラーをしますか?
UPDATE - サービスの開始に失敗した場合だけSTARTSERVICEの呼び出しがnullであるコンポーネント名のインスタンスを返すことがわかったので、私のコードは、今、このソリューションUtilのを探している人のために、この
ComponentName name = context.startService(registrationIntent);
// TODO: if intent not found, notification on need to have GSF
if(name == null){
Util.log_debug_message("@@@@ REG INTENT FAILED");
}else{
Util.log_debug_message("@@@@ REG INTENT SUCCEEDED");
}
(ように見えます.log_debugは、utilクラスでLog.dを呼び出すために作成した関数なので、これをLog.dの呼び出しで置き換えてください)
これはうまくいくと思われるので、私はブロードキャストメッセージを送る必要があると思いますパッケージをインストールする必要があることを示す余分なもの。受信者は、ユーザーがインストールする必要があることを示す警告ダイアログを表示することができます。
ユーザーは何をインストールする必要がありますか?ユーザーはインストールする必要があるものをどのようにインストールするのですか?
任意のヒントを事前に感謝し、ポインタのコードスニペットと、私はこの問題を解決してきた
のように開始し、おそらくマニフェストファイルにあなたのサービスを追加していないことを確認するためにチェックを追加しました。 – Umesh
サービスをマニフェストに追加したかどうかは、実際には何の問題もありません。しかし、とにかくありがとう – jamesc
良い方法があるかどうかわかりませんが、ログを読んで明示的にこれらの種類のエラーを探すことができます。 http://coderzheaven.com/2011/07/how-to-read-logcat -contents-programmatically-in-android/ – Umesh