Wiem, że zostało to zadane już wiele razy, bez odpowiedzi, ale nadal mam nadzieję, że ktoś w końcu rozwiązał problem.Wykrywanie połączenia wychodzącego odpowiedział na Androida
Problem: Mam urządzenie nierootowane z systemem Android 2.3. Muszę utworzyć usługę, która:
- wykonuje połączenie telefoniczne;
- czeka, aż połączenie zostanie odebrane;
- zawiesza telefon po odebraniu połączenia (z przekroczeniem limitu czasu);
Podobnie jak wiele innych, utknąłem z # 2. Poniżej znajduje się podsumowanie rozwiązań kiedykolwiek zaproponował:
- Zastosowanie PhoneStateListener (najbardziej popularne): nie działa dla połączenia wychodzącego nie można wykryć to, czego potrzebuję.
- Użyj metody i jej metod, takich jak
registerForPreciseCallStateChanged
(np. this one): nie działa, żadne telefony nie są w niej zarejestrowane, więc zdarzenia nie są uruchamiane. - Użyj
com.android.internal.telephony.PhoneFactory
, aby uzyskać instancjęcom.android.internal.telephony.Phone
(która jest kluczem do wszystkiego): nie działa, fabryka nie jest inicjowana; próbuje zainicjować go z wynikiem wywołaniamakeDefaultPhones
w wyjątku bezpieczeństwa (np. here). - Wykrywanie wychodzącego dzwonka (link): autor - Dany Poplawec - stwierdza, że wykrywanie dzwonków może pomóc w rozwiązaniu problemu, ale nie dostarcza żadnych szczegółów, więc nie mogłem wypróbować tej techniki.
Wygląda na to wszystko zostało już próbowałem, ale wciąż może być jeszcze jeden trik, który będzie mnie uratować :)
Czy masz jakieś rozwiązanie? – Noundla
Niestety, wygląda na to, że nic nie można zrobić, oprócz modyfikacji samego systemu Android. –