Android launch Twitter intent

前端 未结 3 564
生来不讨喜
生来不讨喜 2020-12-15 19:03

I used below code for launching Twitter through intent but it\'s not working. I have twitter app installed on my phone.

Intent shareIntent = new Intent(andro         


        
3条回答
  •  庸人自扰
    2020-12-15 19:25

    Typically for launching a user's feed

    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?screen_name=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/USERID_OR_PROFILENAME"));
    }
    this.startActivity(intent);
    

    For Post Intent

    Intent tweetIntent = new Intent(Intent.ACTION_SEND);
    tweetIntent.putExtra(Intent.EXTRA_TEXT, "This is a Test.");
    tweetIntent.setType("text/plain");
    
    PackageManager packManager = getPackageManager();
    List resolvedInfoList = packManager.queryIntentActivities(tweetIntent,  PackageManager.MATCH_DEFAULT_ONLY);
    
    boolean resolved = false;
    for(ResolveInfo resolveInfo: resolvedInfoList){
        if(resolveInfo.activityInfo.packageName.startsWith("com.twitter.android")){
            tweetIntent.setClassName(
                resolveInfo.activityInfo.packageName, 
                resolveInfo.activityInfo.name );
            resolved = true;
            break;
        }
    }
    if(resolved){
        startActivity(tweetIntent);
    }else{
        Toast.makeText(this, "Twitter app isn't found", Toast.LENGTH_LONG).show();
    }
    

提交回复
热议问题