通过Twitter原生应用分享图片,文字

时间:2014-09-04 08:27:25

标签: android twitter share

如果安装在手机上,我试图通过原生Twitter应用分享图片和文字。

如果用户已安装原生Twitter应用程序,请打开原生Twitter应用程序,然后显示toast msg。

请让我知道我可以使用的任何其他解决方案或修改以下解决方案。

我搜索了一些东西并试了一下:

Sol 1

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();
        }

即使我安装了原生的Twitter应用程序,它也无法打开应用程序。

Sol 2

Intent tweet_in_native_app = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://post?message=hi ....")); 
activity.startActivity(tweet_in_native_app);

它只允许发布文字,我也必须发布图片和网址

Sol 3

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
        }

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

0 个答案:

没有答案