Android 通过Twitter本机应用程序共享图像、文本

Android 通过Twitter本机应用程序共享图像、文本,android,twitter,share,Android,Twitter,Share,如果手机上安装了本机twitter应用程序,我会尝试通过该应用程序共享图像和文本 如果用户已安装本机twitter应用程序,请打开本机twitter应用程序else show toast msg 请让我知道,任何其他解决方案,我可以使用或修改以下溶胶工作 我搜索了一些东西并尝试过: 溶胶1 它只允许张贴文本,我必须张贴图像和网址以及 溶胶3 在这里,它将提示应用程序列表以及浏览器和Twitter,我希望它直接打开安装的应用程序,而不是询问用户。相关: Intent tweetIntent = n

如果手机上安装了本机twitter应用程序,我会尝试通过该应用程序共享图像和文本

如果用户已安装本机twitter应用程序,请打开本机twitter应用程序else show toast msg

请让我知道,任何其他解决方案,我可以使用或修改以下溶胶工作

我搜索了一些东西并尝试过:

溶胶1

它只允许张贴文本,我必须张贴图像和网址以及

溶胶3

在这里,它将提示应用程序列表以及浏览器和Twitter,我希望它直接打开安装的应用程序,而不是询问用户。

相关:
Intent tweetIntent = new Intent(Intent.ACTION_SEND);
        tweetIntent.putExtra(Intent.EXTRA_TEXT, "This is a Test.");
        tweetIntent.setType("text/plain");

        PackageManager packManager = activity.getPackageManager();
        List<ResolveInfo> 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){
            activity.startActivity(tweetIntent);
        }else{
            Toast.makeText(activity, "Twitter app isn't found", Toast.LENGTH_LONG).show();
        }
Intent tweet_in_native_app = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://post?message=hi ....")); 
activity.startActivity(tweet_in_native_app);
String originalMessage = "This is just a sample text";

        String originalMessageEscaped = null;
        try {
           originalMessageEscaped = String.format(
            "https://twitter.com/intent/tweet?source=webclient&text=%s",
            URLEncoder.encode(originalMessage, "UTF-8"));
        } catch (UnsupportedEncodingException e) {
           e.printStackTrace();
        }

        if(originalMessageEscaped != null) {
           Intent i = new Intent(Intent.ACTION_VIEW);
           i.setData(Uri.parse(originalMessageEscaped));
           activity.startActivity(i);
        }
        else {
           // Some Error
        }