Ich suchte nach einer Möglichkeit, die Twitter-App zu starten und eine bestimmte Seite in meiner Anwendung ohne Webansicht zu öffnen. Ich habe die Lösung für Facebook hier gefunden: Öffnen der Facebook-App auf der angegebenen Profilseite
Ich brauche etwas ähnliches.
BEARBEITEN Ich habe gerade eine Lösung gefunden:
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]")));
}
Antworten:
Das hat bei mir funktioniert:
twitter://user?user_id=id_num
quelle
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/PROFILENAME")));
https://twitter.com/intent?text=hello
?Basierend auf der Antwort von fg.radigales habe ich die App nach Möglichkeit gestartet, aber ansonsten auf den Browser zurückgegriffen:
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);
AKTUALISIEREN
Hinzugefügt
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
, um ein Problem zu beheben, bei dem Twitter in meiner App anstatt als neue Aktivität geöffnet wurde.quelle
Öffnen Sie die Seite in der Twitter-App von einer anderen App mit Android in 2 Schritten:
1. Fügen Sie einfach den folgenden Code ein (beim Klicken auf die Schaltfläche oder an einer beliebigen Stelle)
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"));
Um USER_ID zu erhalten, schreiben Sie einfach den Benutzernamen http://gettwitterid.com/ und geben Sie dort die Twitter-Benutzer-ID ein
Referenz : https://solutionspirit.com/open-page-twitter-application-android/
Hoffe es wird helfen :)
quelle
Meine Antwort baut auf den allgemein akzeptierten Antworten von fg.radigales und Harry auf. Wenn der Benutzer Twitter installiert, aber deaktiviert hat (z. B. mithilfe der App-Quarantäne), funktioniert diese Methode nicht. Die Absicht für die Twitter-App wird ausgewählt, kann sie jedoch nicht verarbeiten, da sie deaktiviert ist.
Anstatt von:
getPackageManager().getPackageInfo("com.twitter.android", 0); intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=2343965036"));
Sie können Folgendes verwenden, um zu entscheiden, was zu tun ist:
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"));
quelle
Probieren Sie einfach dieses Code-Snippet aus. Es wird dir helfen.
//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) { }
quelle
Für mich war dies der Trick, mit dem die Twitter-App geöffnet wird, wenn Sie sie haben oder zum Webbrowser gehen:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/"+"USERID")); startActivity(intent);
quelle