Do systemu Android 2.2 Wiem, że mogę korzystać z refleksji i zakończyć połączenie poprzez getITelephony.Jak programowo zakończyć połączenie w wersji 2.3+?
Jednak od 2.3 to już nie działa, ponieważ nawet jeśli przyznają uprawnienie MODIFY_PHONE_STATE do aplikacji, to teraz aplikacja systemowa tylko uprawnienie: https://stackoverflow.com/a/5095956/821423
Powiedział, że jest to możliwe jeszcze bo mnóstwo zastosowań na rynku google Play robią to dobrze na ICS, na przykład ten:
https://play.google.com/store/apps/details?id=com.androminigsm.fscifree&hl=en
Więc pytanie brzmi, jak oni to robią? Wiem, że mogę odebrać połączenie za pomocą symulacji haka zestawu słuchawkowego, ale nie wiem, jak zakończyć połączenie.
Dziękuję.
To znaczy, że możemy stil użyć techniki ITelephony.aidl akceptować i odrzucać połączenia programowo, ale to tylko nie działa silenceRinger? Jedynym rozwiązaniem pozostaje wypowiadanie komentarza silenceRinger w pliku pomocniczym? Pls sugeruje, ponieważ twoje odkrycie pozwoli mi wykorzystać tę technikę w projektowaniu nowej aplikacji. –
W wersji 2.3.6, endCall() do iTelephony właśnie to robi. To rzeczywiście silenceRinger(), które wyzwala problem z uprawnieniami. Możesz po prostu skomentować silenceRinger() w swoim rzeczywistym kodzie, zostaw AIDL jako taki. Nie testowałem tego od 1,5 do 2,2, niedługo jednak to zrobię. Powiadomię Cię na tej stronie. –
Wow ... W rzeczywistości miałem endCall() w moim kodzie, ale nie został trafiony z powodu niektórych instrukcji if. Po prostu założyłem, że to nie działa, ponieważ interfejs API został wyłączony. Kusi mnie, aby oznaczyć Twoją odpowiedź na usunięcie, więc Google nie rozwiązuje tego problemu! :) +1 – you786