servicio - Abrir la página en la aplicación de Twitter desde otra aplicación-Android
twitter support (5)
Estaba buscando una forma de iniciar la aplicación de Twitter y abrir una página específica desde mi aplicación, sin vista web. Encontré la solución para Facebook aquí: abriendo la aplicación de Facebook en la página de perfil especificada
Necesito algo similar.
EDITAR Acabo de encontrar una solución:
try {
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("twitter://user?screen_name=[user_name]"));
startActivity(intent);
} catch (Exception e) {
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("https://twitter.com/#!/[user_name]")));
}
Abra la página en la aplicación de Twitter desde otra aplicación usando Android en 2 pasos:
1. Simplemente pegue el siguiente código (haga clic en el botón o en cualquier lugar que necesite)
Intent intent = null;
try{
// Get Twitter app
this.getPackageManager().getPackageInfo("com.twitter.android", 0);
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=USER_ID"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
} catch () {
// If no Twitter app found, open on browser
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/USERNAME"));
}
2. intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=USER_ID"));
Para obtener USER_ID solo escribe el nombre de usuario http://gettwitterid.com/ y obtén ID de usuario de Twitter allí
Referencia : https://solutionspirit.com/open-page-twitter-application-android/
Espero que ayude :)
Esto funcionó para mí: twitter://user?user_id=id_num
Para saber la ID: http://www.idfromuser.com/
Mi respuesta se basa en las respuestas ampliamente aceptadas de fg.radigales y Harry. Si el usuario tiene Twitter instalado pero deshabilitado (por ejemplo, al usar Cuarentena de aplicaciones), este método no funcionará. Se seleccionará la intención de la aplicación Twitter, pero no podrá procesarla ya que está deshabilitada.
En lugar de:
getPackageManager().getPackageInfo("com.twitter.android", 0);
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=2343965036"));
Puede usar lo siguiente para decidir qué hacer:
PackageInfo info = getPackageManager().getPackageInfo("com.twitter.android", 0);
if(info.applicationInfo.enabled)
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=2343965036"));
else
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/wrkoutapp"));
Según la respuesta de fg.radigales, esto es lo que usé para iniciar la aplicación, si es posible, pero de lo contrario recurrir al navegador:
Intent intent = null;
try {
// get the Twitter app if possible
this.getPackageManager().getPackageInfo("com.twitter.android", 0);
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=USERID"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
} catch (Exception e) {
// no Twitter app, revert to browser
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/PROFILENAME"));
}
this.startActivity(intent);
ACTUALIZAR
Añadido intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
para solucionar un problema donde Twitter se estaba abriendo dentro de mi aplicación en lugar de como una actividad nueva.
Solo prueba este fragmento de código. Esto te ayudará.
//Checking If the app is installed, according to the package name
Intent intent = new Intent();
intent.setType("text/plain");
intent.setAction(Intent.ACTION_SEND);
final PackageManager packageManager = getPackageManager();
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo resolveInfo : list)
{
String packageName = resolveInfo.activityInfo.packageName;
//In case that the app is installed, lunch it.
if (packageName != null && packageName.equals("com.twitter.android"))
{
try
{
String formattedTwitterAddress = "twitter://user/" ;
Intent browseTwitter = new Intent(Intent.ACTION_VIEW, Uri.parse(formattedTwitterAddress));
long twitterId = <Here is the place for the twitter id>
browseTwitter.putExtra("user_id", twitterId);
startActivity(browseTwitter);
return;
}
catch (Exception e)
{
}
}
}
//If it gets here it means that the twitter app is not installed. Therefor, lunch the browser.
try
{
String twitterName = <Put the twitter name here>
String formattedTwitterAddress = "http://twitter.com/" + twitterName;
Intent browseTwitter = new Intent(Intent.ACTION_VIEW, Uri.parse(formattedTwitterAddress));
startActivity(browseTwitter);
}
catch (Exception e)
{
}