Je cherchais un moyen de lancer l'application Twitter et d'ouvrir une page spécifiée de mon application, sans affichage Web. J'ai trouvé la solution pour Facebook ici: Ouverture de l'application facebook sur la page de profil spécifiée
J'ai besoin de quelque chose de similaire.
[~ # ~] modifier [~ # ~] Je viens de trouver une solution:
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]")));
}
Cela a fonctionné pour moi: Twitter://user?user_id=id_num
Pour connaître l'ID: http://www.idfromuser.com/
Sur la base de la réponse de fg.radigales, voici ce que j'ai utilisé pour lancer l'application si possible, mais je retombe sur le navigateur sinon:
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);
MISE À JOUR
Ajout de intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
pour corriger un problème où Twitter s'ouvrait à l'intérieur de mon application au lieu d'une nouvelle activité.
Ouvrez la page sur l'application Twitter à partir d'une autre application en utilisant Android en 2 étapes:
1.Juste collez le code ci-dessous (cliquez sur le bouton ou n'importe où vous avez besoin)
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"));
Pour obtenir USER_ID, écrivez simplement le nom d'utilisateur http://gettwitterid.com/ et obtenez l'identifiant utilisateur Twitter dedans
Référence : https://solutionspirit.com/open-page-Twitter-application-Android/
J'espère que cela vous aidera :)
Ma réponse s'appuie sur les réponses largement acceptées de fg.radigales et Harry. Si l'utilisateur a Twitter installé mais désactivé (par exemple en utilisant App Quarantine), cette méthode ne fonctionnera pas. L'intention de l'application Twitter sera sélectionnée, mais elle ne pourra pas la traiter car elle est désactivée.
Au lieu de:
getPackageManager().getPackageInfo("com.Twitter.Android", 0);
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("Twitter://user?user_id=2343965036"));
Vous pouvez utiliser les éléments suivants pour décider quoi faire:
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"));
fun getOpenTwitterIntent(context: Context, url: String) {
return try {
context.packageManager.getPackageInfo("com.Twitter.Android", 0)
context.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("Twitter://user?screen_name=$url")))
} catch (e: Exception) {
context.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://Twitter.com/#!/$url")))
}
}
Essayez simplement cet extrait de code. Cela vous aidera.
//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)
{
}
Pour moi, cela a fait l'affaire, il ouvre l'application Twitter si vous l'avez ou va dans le navigateur Web:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://Twitter.com/"+"USERID"));
startActivity(intent);