Obtener todos los clientes de Twitter de aplicaciones instaladas
Me pregunto si es posible enumerar todos los clientes de Twitter que se instalan en un teléfono. Al principio, pensé que esto podría hacerse haciendo coincidir el nombre del paquete con "Twitter". Pero la mayoría de los clientes de Twitter en Android no tienen el nombre de "Twitter" en su nombre de paquete.
Podemos obtener la lista de aplicaciones con permisos específicos, pero eso no me va a ayudar. Obtener aplicaciones con ciertas intenciones personalizadas probablemente no va a ayudar también, y todavía tengo que encontrar una manera de obtener una lista de aplicaciones que manejan una intención personalizada.
- Android Share Intent para un mapa de bits - ¿es posible no guardarlo antes de compartir?
- ¿Cómo borrar los datos de intención en Actividad después de abrirlos desde url?
- ¿Por qué Intent.createChooser () necesita un BroadcastReceiver y cómo implementarlo?
- Diferencia entre getExtras (). GetSerializable () y getSerializableExtra ()
- Android: pasar la información de structureName a ACTION_INSERT_OR_EDIT no funciona
No parece factible, pero debe haber alguna manera que podría por lo menos ponerme cerca de querer quiero. ¿A alguien le gustaría arrojar algo de luz sobre él?
- Android: Evento ACTION_POWER_CONNECTED no se envía a mi BroadcastReceiver
- Cómo informar al usuario de que necesita instalar otra aplicación de la que dependa mi aplicación
- ¿Alguien por favor explique RESULT_FIRST_USER
- Android: Intenciones implícitas contra los receptores de difusión
- ¿qué sucede memoria-sabio cuando putExtra () se llama?
- ¿Cómo puedo pasar URI con intención explícita?
- Cómo detener un servicio
- ¿Cómo programar una llamada?
No sé si hay algún tipo de método para obtener "twitter cliente" (¿cómo definimos el cliente de Twitter?).
Puede obtener una lista de nombres (los clientes de twitter que conoce) en los paquetes instalados en los dispositivos.
final List<PackageInfo> apps = context.getPackageManager().getInstalledPackages(0); final String separator = ";"; final String separatorVersion = "-"; //Log.i("Package list", "num:+"+apps.size()); for (PackageInfo infoApp : apps) { for (TwitterClient tr : mapTwitterClient.values()) { if (infoApp.packageName.contains(tr.getPackageName()) ) { //it's a Twitter client this package? if (!twitterClients.equals("")) { twittersClients += separator; } twitterClients += tr.getCommonName()+separatorVersion+infoApp.versionName; } } }
Necesitas crear la clase TwitterClient que solo tiene 2 propiedades (packageName y commonName) y sus getters / setters.
Y llene el mapa con todos TwitterClient que usted conoce (Ej: new TwitterClient("com.twitter.android","Twitter official")
);
private static final HashMap<String, TwitterClient> mapTwitterClient
Este método es un proceso difícil de usar con inteligencia.
- Obtener la altura del teclado suave en modo de pantalla completa
- java.lang.NoSuchMethodError: android.app.ANRAppManager.dumpMessageHistory