Вызов ACTION_CALL, вызванный службой Android на Motorola Milestone, приостанавливает действие Dial In - PullRequest
0 голосов
/ 03 июля 2010

У меня проблема с намерением ACTION_CALL из моего сервиса на Motorola Milestone после обновления до 2.1 - версия прошивки update1.У меня очень простой (работал раньше) код.

Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel://" 
+ dialOutNumber)); 
dialIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(dialIntent); 

Теперь это выглядит так, как будто InCallScreen "зависает" после установки звукового режима или ActivityManager "блокирует" активность InCallScreen. Телефон выполняет вызов, но экран черный и заблокирован.Если я вызываю ACTION_CALL намерение от деятельности, это работает хорошо.Вот журнал:

<p>07-01 00:42:39.617: INFO/ActivityManager(1282): Starting activity: 
Intent { act=android.intent.action.CALL dat=tel:5247519 flg=0x10000000 
cmp=com.android.phone/.OutgoingCallBroadcaster } 
07-01 00:42:39.664: DEBUG/PhoneUtils(6381): 
checkAndCopyPhoneProviderExtras: some or all extras are missing. 
... 
07-01 00:42:40.679: DEBUG/InCallScreen(6381): placeCall()...  intent = 
Intent { act=android.intent.action.CALL dat=tel:5247519 flg=0x10800000 
cmp=com.android.phone/.InCallScreen (has extras) } 
07-01 00:42:40.679: DEBUG/InCallScreen(6381): 
checkIfOkToInitiateOutgoingCall: ServiceState = 0 
07-01 00:42:40.679: DEBUG/PhoneUtils(6381): placeCall: '5247519'... 
... 
07-01 00:42:40.710: DEBUG/PhoneUtils(6381): ===> phone.dial() 
returned:  incoming: false state: DIALING post dial state: NOT_STARTED 
07-01 00:42:40.710: DEBUG/PhoneUtils(6381): 
setAudioMode(MODE_IN_CALL)... 
07-01 00:42:40.710: DEBUG/AudioHardwareMot(1055): 
AudioMgr:setMode(IN_CALL) 
07-01 00:42:40.710: DEBUG/AudioHardwareMot(1055): AudioMgr:setMode 
MODE_IN_CALL 
07-01 00:42:40.710: INFO/MYPhoneService(6437): Telephony OFFHOOK 
... 
Here the screen is black and locked ~ 3 min. Only status panel 
available. Call ends. After some timeout see InCallScreen... If start 
from the Activity - the InCallScreen apears right after call start. 
... 
07-01 00:45:14.031: DEBUG/InCallScreen(6381): placeCall: 
PhoneUtils.placeCall() succeeded for regular call '5247519'. 
07-01 00:45:14.031: DEBUG/DTMFTwelveKeyDialer(6381): closeDialer()... 
07-01 00:45:14.031: DEBUG/DTMFTwelveKeyDialer(6381): clearDigits()... 
07-01 00:45:14.031: DEBUG/PhoneApp(6381): updateProximitySensorMode: 
state = OFFHOOK 
07-01 00:45:14.031: DEBUG/PhoneApp(6381): updateProximitySensorMode: 
lock already released. 
07-01 00:45:14.031: DEBUG/PhoneApp(6381): isInDockMode bInDockMode 
is : false 
07-01 00:45:14.039: DEBUG/StatusBar(1282): DISABLE_EXPAND: yes </p>

Я могу отправить полный журнал, но он действительно большой.Заранее спасибо.

1 Ответ

1 голос
/ 30 мая 2011

Может быть, вы должны позвонить так: Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + dialOutNumber));

удалить "//".

Посмотрите на ваш журнал, DEBUG/PhoneUtils(6381): checkAndCopyPhoneProviderExtras: некоторые или все дополнительные отсутствуют, это кскажем PhoneUtils запускаются с ошибкой при разборе URI.Я проверяю URI и выясняю, что URI анализирует только четыре схемы, это 'tel:' и 'voicemail:' и 'contact:' и 'spi'.

С уважением!

...