Odrzucanie połąćzeń

10 views
Skip to first unread message

MiKylie

unread,
Jun 20, 2011, 2:55:15 AM6/20/11
to Akademia Inżyniera "Szlif"
Witam,

Odrzucanie połączeń jest jednym ze składowych elementów mojego
projektu. W zasadzie już tylko tego brakuje mi do szczęścia. ;-) Wiem,
że ogólnie jest problem pod Androidem z zarządzaniem połączeniami.
Znalazłem (już jakiś czas temu) "dirty hack" z ITelephony itp, i żyłem
w przeświadczeniu, że wkleję te kilka linii i będzie dobrze.
Dotychczas pracowałem tylko na "stubie"...

Nadszedł moment finalizacji projektu, i połączenia wszystkich
elementów składowych, i okazało się, że sugerowany hack nie działa,
nawet eclipse nie chce aimportować com.android.internal.telephony...

Wszystkie poszukiwania w tym temacie kończą się na znalezieniu hacku
"ITelephony", albo na zabijaniu całego procesu telefonicznego (co
wiążę się z koniecznością rootowania telefonu uprzednio, itd).

Moje próby bazowały na opisie:
http://code.google.com/p/teddsdroidtools/source/browse/trunk/teddsdroidtools/src/tss/droidtools/phone/CallAnswerActivity.java?r=45

I tu się pojawia moje pytanie, jak inne osoby zrealizowały odrzucanie?
Zupełnie inaczej? Czy też zapomniałem o jakimś drobiazgu, i sposób
jest dobry, ale czegoś nie dołączyłem czy coś.

Pozdrawiam,
I z góry dzięki!
Michał

Radosław Zegadło

unread,
Jun 20, 2011, 3:44:25 AM6/20/11
to sz...@googlegroups.com
Sposób na pewno jest dobry. U mnie działał. Zaraz poszukam jak to powinno szczegółowo wyglądać.

2011/6/20 MiKylie <mik...@gmail.com>

--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie "Akademia Inżyniera "Szlif"".

Aby zamieszczać posty w tej grupie, wyślij e-mail na adres sz...@googlegroups.com.
Aby anulować subskrypcję tej grupy, wyślij e-mail na adres szlif+un...@googlegroups.com.
Aby uzyskać więcej informacji, odwiedź tę grupę pod adresem http://groups.google.com/group/szlif?hl=pl.


Radosław Zegadło

unread,
Jun 20, 2011, 3:50:16 AM6/20/11
to sz...@googlegroups.com
Permissions:
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
Taki mam broadcast receiver:
<receiver android:name=".CallBroadcastReceiver"> 
			<intent-filter>
				<action android:name="android.intent.action.PHONE_STATE"></action>
			</intent-filter>
</receiver>

A tak wygląda to w kodzie:

TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); Class c = null; try { c = Class.forName(tm.getClass().getName()); Method m = c.getDeclaredMethod("getITelephony"); m.setAccessible(true); ITelephony telephonyService = (ITelephony) m.invoke(tm); CallListener callListener = new CallListener(); tm.listen(callListener, PhoneStateListener.LISTEN_CALL_STATE); Bundle bundle = intent.getExtras(); String phoneNumber = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER); telephonyService.endCall(); }catch (Exception e) { L.p(e.getMessage()); }


U mnie to działało na androidach od 1.5 do 2.3. Jeśli będziesz miał problem to daj znać. Wieczorem mogę podesłać cały projekt to sobie zobaczysz co i jak. Niestety teraz w pracy jestem i nie za bardzo mam czas się tym zajmować.

Powodzenia.

Radek

2011/6/20 Radosław Zegadło <radoslaw...@gmail.com>

Jarek Potiuk

unread,
Jun 20, 2011, 3:50:48 AM6/20/11
to sz...@googlegroups.com
Jedno słowo: reflection

J.

+48 660 796 129
"Humanity has advanced, when it has advanced, not because it has been sober,
responsible, and cautious, but because it has been playful, rebellious, and
immature."




2011/6/20 Radosław Zegadło <radoslaw...@gmail.com>

MiKylie

unread,
Jun 20, 2011, 11:44:48 AM6/20/11
to Akademia Inżyniera "Szlif"
Dzięki!
Potestuję jeszcze, musiałem coś przegapić, że eclipse mi protestował.
Ale skoro Tobie zadziałało, to ewidentnie, cały myk działa.

Pozdrawiam,
Michał

On Jun 20, 9:50 am, Radosław Zegadło <radoslaw.zega...@gmail.com>
wrote:
> *Permissions:*
>
> <uses-permission
> android:name="android.permission.READ_PHONE_STATE"></uses-permission>
> <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
>
> *Taki mam broadcast receiver:*
>
> <receiver android:name=".CallBroadcastReceiver">
>                         <intent-filter>
>                                 <action android:name="android.intent.action.PHONE_STATE"></action>
>                         </intent-filter>
> </receiver>
>
> *A tak wygląda to w kodzie:*
>
>                 TelephonyManager tm = (TelephonyManager) context
>                                 .getSystemService(Context.TELEPHONY_SERVICE);
>
>                 Class c = null;
>
>                 try {
>
>                         c = Class.forName(tm.getClass().getName());
>
>                         Method m = c.getDeclaredMethod("getITelephony");
>
>                         m.setAccessible(true);
>                         ITelephony telephonyService = (ITelephony) m.invoke(tm);
>                         CallListener callListener = new CallListener();
>                         tm.listen(callListener, PhoneStateListener.LISTEN_CALL_STATE);
>
>                         Bundle bundle = intent.getExtras();
>
>                         String phoneNumber =
> bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
>
>                         telephonyService.endCall();
>
>                 }catch (Exception e) {
>                         L.p(e.getMessage());
>                 }
>
> U mnie to działało na androidach od 1.5 do 2.3. Jeśli będziesz miał problem
> to daj znać. Wieczorem mogę podesłać cały projekt to sobie zobaczysz co i
> jak. Niestety teraz w pracy jestem i nie za bardzo mam czas się tym
> zajmować.
>
> Powodzenia.
>
> Radek
>
> 2011/6/20 Radosław Zegadło <radoslaw.zega...@gmail.com>
>
> > Sposób na pewno jest dobry. U mnie działał. Zaraz poszukam jak to powinno
> > szczegółowo wyglądać.
>
> > 2011/6/20 MiKylie <miky...@gmail.com>
>
> >> Witam,
>
> >> Odrzucanie połączeń jest jednym ze składowych elementów mojego
> >> projektu. W zasadzie już tylko tego brakuje mi do szczęścia. ;-) Wiem,
> >> że ogólnie jest problem pod Androidem z zarządzaniem połączeniami.
> >> Znalazłem (już jakiś czas temu) "dirty hack" z ITelephony itp, i żyłem
> >> w przeświadczeniu, że wkleję te kilka linii i będzie dobrze.
> >> Dotychczas pracowałem tylko na "stubie"...
>
> >> Nadszedł moment finalizacji projektu, i połączenia wszystkich
> >> elementów składowych, i okazało się, że sugerowany hack nie działa,
> >> nawet eclipse nie chce aimportować com.android.internal.telephony...
>
> >> Wszystkie poszukiwania w tym temacie kończą się na znalezieniu hacku
> >> "ITelephony", albo na zabijaniu całego procesu telefonicznego (co
> >> wiążę się z koniecznością rootowania telefonu uprzednio, itd).
>
> >> Moje próby bazowały na opisie:
>
> >>http://code.google.com/p/teddsdroidtools/source/browse/trunk/teddsdro...
Reply all
Reply to author
Forward
0 new messages