2013-04-13 16 views
6

Sono nuovo nello sviluppo Android. Sono un grande fan dell'app di Inbuilt Talk di Android, ma ciò che odio è la mancanza di notifiche personalizzabili, quindi ho deciso di sviluppare un'app per questo.Ricezione di messaggi GTalk nella propria app?

Il mio requisito è un'applicazione che controlla su GTalk e visualizza notifiche pre-personalizzate quando viene ricevuto un messaggio.

Si prega di notare che non voglio che la mia app chieda all'utente il nome utente o la password di GTalk. Sono a conoscenza della libreria Asmack, ma è più utile per un client di messaggistica istantanea, il mio requisito è solo quello di afferrare l'evento del messaggio in arrivo. (Qualcosa come BroadcastReceiver per SMS?)

È possibile recuperare i messaggi Gtalk come è possibile recuperare i messaggi SMS con un BroadcastReceiver?

+0

"Non voglio che la mia app chieda all'utente il nome utente o la password di GTalk", per favore, chiarisci cosa intendi con questo? – Freak

+0

Probabilmente vuol dire che non vuole creare una nuova im app – gtsouk

risposta

3

Non ci sono mezzi documentati e supportati per farlo, e spero sinceramente che Google non abbia lasciato mezzi non documentati, non supportati e non garantiti per farlo.

+1

Forse non c'è una documentazione adeguata, ma l'implementazione è possibile, l'app di super notificatore di Gtalk lo fa, produce vibrazioni e/o suonerie personalizzate quando viene ricevuto un messaggio in GTalk e, soprattutto, non richiede nome utente e password quando lo si installa ... quindi voglio sapere come farlo. – Shariq

+0

@CommonsWare, ah, ma lo hanno fatto! È "sicuro" nel senso che è dietro un permesso extra ma è (per quanto posso dire) non documentato e non supportato (anche se qual è l'uso dell'esposizione di protectionLevel = permessi "pericolosi" se non sono supportati?). – Delyan

2

Mentre non è documentato, il framework dei servizi di Google espone le autorizzazioni che ti danno accesso al fornitore di contenuti di Google Talk (GTalk Super Notifier utilizza uno di quelli per fare la sua magia). Non sono riuscito a trovare alcuna documentazione su quel fornitore di contenuti, quindi dovresti eseguirne il reverse engineering.

Qui ci sono i permessi rilevanti:

+ group:android.permission-group.MESSAGES 
    + permission:com.google.android.providers.talk.permission.READ_ONLY 
    package:com.google.android.gsf 
    label:read instant messages 
    description:Allows apps to read data from the Google Talk content provider. 
    protectionLevel:dangerous 
    + permission:com.google.android.providers.talk.permission.WRITE_ONLY 
    package:com.google.android.gsf 
    label:write instant messages 
    description:Allows apps to write data to the Google Talk content provider. 
    protectionLevel:dangerous 

Per inciso, si tratta di un bizzarro che Google avrebbe esposto i permessi con ProtectionLevel = "pericoloso" e non documentare il loro utilizzo.

+0

Grazie! Questo mi ha portato sulla giusta strada e quindi è stato assegnato il premio. Probabilmente creerò un'applicazione demo a un certo punto nel caso in cui qualcun altro abbia bisogno di questo. – Doug

+0

@Doug Hai mai capito se è possibile interrogare Google Hangout? Sto cercando di ottenere un conteggio non letto e finora posso ottenere solo il numero di SMS non letti osservando Telephony.Sms. Sono arrivato ad autorizzare com.google.android.gm.permission.READ_CONTENT_PROVIDER ma non sono sicuro che Uri esegua una query. – GaBo

+0

@GaBo, no non l'ho fatto. Non l'ho mai capito, quindi ho rinunciato. Se ti capita di trovare una soluzione mi piacerebbe sapere. Grazie. – Doug