初めて投稿させていただきます。
前提・実現したいこと
個人開発で自作の電話アプリを作っているのですが、通話中に電話アプリを非表示(Homeボタン押下等)した後に、再び電話アプリを表示できず困っております。
呼び出し元のダイヤラアプリにある、『ダイヤルを表示する』『通話に戻る』等から再表示したいと思っております
2:Homeボタン押下等をした後に、ダイヤラアプリを起動して、『ダイヤル画面を表示』or『通話に戻る』を押下
3:Home画面に戻ってします。
期待値は、ここで再び電話アプリが起動してユーザが終話などの操作を行えることです。
発生している問題・エラーメッセージ
こちらの情報をもとに
https://stackoverflow.com/questions/41767460/answer-incoming-call-using-android-telecom-and-incallservice
intent-filterで <action android:name="android.telecom.InCallService" />を指定することで
自作の電話アプリを作成する事ができました。。
しかしHomeボタン押下等にダイヤラアプリ等から再表示できず、ダイヤラアプリの『ダイヤルを表示する』を選択しても何も反応せずに、Home画面に戻ってしまう挙動になっております。
参考にですが、こちらのアプリ等では、呼び出し元のダイヤラアプリ側で『ダイヤルを表示する』を選択すると、電話アプリが起動していました。
http://applion.jp/android/app/jp.gr.java_conf.sakuradev.phonesupport/
参考:正常動作するアプリのログ情報
正常に動作する「節約サポート」というアプリのログを見ると、09-16 08:03:29.541の時点でシステム側からActibityが呼ばれている様に見受けます。 ------------------ 9-16 08:03:29.527 2905-4248/? D/Telecom: TelecomUtils: isAdditionalPrivilegedDialer: com.android.dialer: TSI.sICS@ASA com.android.server.telecom.TelecomServiceImpl: requestPhoneStart: TSI.sICS@ASA 09-16 08:03:29.528 2905-2921/? W/MultiScreenManagerService: moveTaskBackToDisplayIfNeeded(): root is not base activity 09-16 08:03:29.531 2905-2921/? D/ActivityManager: moveToFront() : reason=finishActivity adjustFocus setFocusedActivity isAttached=true TaskRecord{5abc5a9d0 #301 A=com.teslacoilsw.launcher.NovaLauncher U=0 StackId=0 sz=1} setFocusStackUnchecked: reason=finishActivity adjustFocus setFocusedActivity focusCandidate=ActivityStack{7769058d0 stackId=0, 1 tasks} caller=com.android.server.am.ActivityStack.moveToFront:879 com.android.server.am.ActivityStackSupervisor.moveActivityStackToFront:2036 09-16 08:03:29.531 2905-2921/? W/MultiScreenManagerService: moveTaskBackToDisplayIfNeeded(): root activity or app is null 09-16 08:03:29.535 2905-2921/? D/InputDispatcher: Focused application set to: xxxx 09-16 08:03:29.536 2905-2921/? D/InputDispatcher: Focus left window: 13249 09-16 08:03:29.537 2905-2921/? D/ActivityTrigger: ActivityTrigger activityPauseTrigger 09-16 08:03:29.537 2905-2921/? D/GameManagerService: sem_perfomance_mode: 3 09-16 08:03:29.539 13249-13249/? D/ViewRootImpl@549c0d8[DialtactsActivity]: MSG_WINDOW_FOCUS_CHANGED 0 09-16 08:03:29.541 2905-3732/? I/ActivityManager: START u0 {act=null typ=null flg=0x10000000 cmp=ComponentInfo{jp.gr.java_conf.sakuradev.phonesupport/jp.gr.java_conf.sakuradev.phonesupport.CallActivityGear}} from uid 10260 on display 0 09-16 08:03:29.543 2905-3732/? D/ActivityManager: ActivityRecord() Constructor : multiScreenAttrs=MultiScreenAttrs{mDisplayId=0, mBaseDisplayId=0, mBaseActivity=false} 0 -----------------
試したこと
Manifest等の設定を試みてみましたが、ダイヤラアプリから「ダイヤルを表示する」を押下しても、Home画面に戻るだけで、ログにもStartの一文が表示されておりませんでした。
どの様に設定すれば、システム側のダイヤラアプリから自作の電話アプリを読んでくれるようになるか、わかりませんでした
この制御を登録すればよいか?ご教示いただけますでしょうか。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
AndroidStudio 3.1
compileSdkVersion:27
minSdkVersion 15
buildToolsVersion '27.0.3'
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー