Autore Topic: Limitare app per la condivisione sui social  (Letto 284 volte)

Offline LonelyWolf

  • Utente junior
  • **
  • Post: 148
  • Respect: +12
    • Mostra profilo
    • Traversate dei laghi
  • Dispositivo Android:
    GT-I9505, ALE-L21
  • Sistema operativo:
    Windows 7 32/64
Limitare app per la condivisione sui social
« il: 24 Marzo 2015, 14:15:25 CET »
0
Nella mia app permetto la condivisione dei dati inseriti sui social, per fare ciò uso un semplice intent.action_send ecc.ecc.

Dato che viene condiviso un semplice testo (anche un EXTRA_HTML nel caso venga supportato) per i vari socialnetwork di cui l'utente potrebbe avere la relativa app sul dispositivo non mi sembra corretto che vengano visualizzati i vari bluetooth, wifi, ecc.

Ho fatto molte ricerche e dai vari risultati non sembra possibile utilizzare alcun filtro senza doversi creare un proprio chooser e interrogare il PackageManager, però di soluzioni recenti non ne ho trovate.

Consultare il packagemanager impone, per quanto ho trovato fin ora, che io limiti la scelta solo alle app di cui sono a conoscenza e ciò non mi sta bene, a.e. non posso conoscere tutti i client tweetter o facebook presenti nel mondo!

In attesa che qualcuno mi dia qualche suggerimento inizio a documentarmi sul package manager per vedere quali informazion mi restituisce!
Se la mia risposta ti è utile, per favore un thanks!

Offline LinkOut

  • Utente normale
  • ***
  • Post: 269
  • Respect: +37
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Limitare app per la condivisione sui social
« Risposta #1 il: 24 Marzo 2015, 14:34:58 CET »
0
Citazione
Consultare il packagemanager impone, per quanto ho trovato fin ora, che io limiti la scelta solo alle app di cui sono a conoscenza e ciò non mi sta bene, a.e. non posso conoscere tutti i client tweetter o facebook presenti nel mondo!

In linea di massima la logica è questa:
1. Decido che la mia app deve condividere su FB,TW,G+.
2. Devo verificare se l'utente ha l'applicazione sul telefono... come faccio? Semplice tramite l'app identifier. (com.facebook.katana, com.twitter.android, com.google.android.apps.plus) Gli identifier non cambiano mai sono sempre quelli.

Offline LonelyWolf

  • Utente junior
  • **
  • Post: 148
  • Respect: +12
    • Mostra profilo
    • Traversate dei laghi
  • Dispositivo Android:
    GT-I9505, ALE-L21
  • Sistema operativo:
    Windows 7 32/64
Re:Limitare app per la condivisione sui social
« Risposta #2 il: 24 Marzo 2015, 15:26:11 CET »
0
So bene che gli identificativi sono sempre quelli, ma forse non mi sono spiegato bene.

Ad esempio non voglio che per twitter compaia solo twitter, se l'utente ha installato 10 app che permettono di fare tweet tutte e 10 devono comparire che usi quella che preferisce; idem per gli altri social o instant messenger.

Il termine giusto è "filtrare", non voglio che compaiano ad esempio bluetooth, dropbox, wi-fi direct, barcode scanner, ecc.



Post unito: 25 Marzo 2015, 09:46:17 CET

Non c'è niente da fare, ho dovuto interfacciarmi con packagemanager e crearmi un filtro e il dialogo personalizzato.
I pro di questa soluzione:
1) filtro basato su parte del nome, a.e. se tutti i client twitter hanno nel nome "twi" vengono mostrati
2) il dialogo non si chiude dopo aver condiviso la prima volta permettendo un click in meno se si vuole condividere su più social
3) (prossimamente implementato) testo preimpostato può essere personalizzato in base all'app scelta
4) (prossimamente implementato) far scegliere all'utente il filtro per le app da mostrare

I contro:
1) il dialogo non si chiude dopo aver condiviso la prima volta, un click in più se si condivide solo su un social
2) se si installa qualche app che nel nome contiene uno degli elementi del filtro verrà mostrata

Allego lo screenshot con il risultato ottenuto, il filtro di base che ho usato per le prove è limitato (a.e. non comprende whatsup, mail e altro)
« Ultima modifica: 25 Marzo 2015, 09:46:20 CET da LonelyWolf, Reason: Merged DoublePost »
Se la mia risposta ti è utile, per favore un thanks!