4

序章

ご存知かもしれませんが、新しいSamsung Galaxy S3には、いくつかの「タスク」を簡単にするために使用できるいくつかのクールなモーション機能があります。そうでない人のために、ここに説明のためのリンクがあります

動機

これとして機能するバックグラウンドサービスを作成したいと思いますTouchwizz-exclusive set of features

何が可能か

センサープロバイダーとバックグラウンドサービスに関するAndroidのドキュメント、およびこのリンク(@Michal Kが提供)にある有用な情報によると、バックグラウンドサービスからこれらのセンサーイベントを傍受することが可能です。バッテリーが非常に高価になる場合でも、それは可能です。

可能かどうかわからないこと

フォアグラウンドアプリ(「連絡先」、「メッセージング」、または私たち)とのやり取りが、バックグラウンドサービスまたはその他の方法を使用して可能かどうかはわかりません。

相互作用することで、つまり、次のようなことができるようになります。

  1. BGServiceは、電話が「通話位置」にあるというイベント「発言」を傍受します
  2. BGServiceは、フォアグラウンドアプリが「連絡先」か「メッセージング」かを確認します
  3. そうである場合、BGServiceは開いているSMSまたは連絡先があるかどうかを確認します
  4. 開いている(フォーカスされた)連絡先またはSMSスレッドがある場合、BgServiceはその連絡先(またはSMSの送信者)の呼び出しを開始します。

これは私が達成しようとしていることの核となるアイデアです。これは可能ですか、それともアプリとイベントの統合は、すべてが単一のフレームワーク(この場合はTouchwizz)にバンドルされているためにのみ可能ですか?

可能であれば、どんなヒントでも大歓迎です。

前もって感謝します

4

1 に答える 1

1

1.BGService は、電話が「呼び出し位置」にあることを「言っている」イベントをインターセプトします。

TelephonyManager APIを使用して電話の状態を判断できます

2.BGService は、フォアグラウンド アプリが「連絡先」または「メッセージング」であるかどうかを確認します。

ActivityManager APIを使用して、フォアグラウンド アプリケーションを決定できます。例については、次の投稿を参照してください: バックグラウンド タスクまたはサービスから現在のフォアグラウンド アプリケーションを決定する

3.そうである場合、BGServiceは、開いているSMSまたは連絡先があるかどうかを確認します

これが可能かどうかはわかりません。ビューで何がフォーカスされているかを確認するには、SMS または連絡先アプリケーションにクエリを実行する方法が必要です。SmsManager APIは、SMS を送信するためのメソッドのみを提供します。

4. 開いている (フォーカスされている) 連絡先または SMS スレッドがある場合、BgService はその連絡先 (または SMS の送信者) への通話を開始します。

#3と同じ答え。

または、SMS および連絡先アプリのコンテンツの変更のみに関心がある場合は、 ContentObserver APIを使用して何かを実行できる可能性があります。

また、 ContentProvidersの API ドキュメントとContent Provider Basicsドキュメントも参照してください。

于 2012-07-19T04:50:28.413 に答える