通过Android应用程序分享在Twitter和Facebook [英] Sharing on Twitter and Facebook via android app

查看:256
本文介绍了通过Android应用程序分享在Twitter和Facebook的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发通过Facebook和Twitter至极,我可以共享文本(及以后的图像太)的的Adroid应用程序。我发现了一些code被打开的Facebook / Twitter的分享窗口,但在应用程序需要共享的文本是一个EditText所以我的问题是如何我可以插入我的文字从EditText上对TE的文字,这将是共享(遗憾的英语不好,如果你需要进一步的解释,或者你没明白什么的话,我会尝试过更好的解释)。这是我的code两种共享方式:

Facebook的:

 意图shareIntent =新的意图(
                    android.content.Intent.ACTION_SEND);
            shareIntent.setType(text / plain的);
            shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
                    (字符串)v.getTag(R.string.app_name));
            shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,
                    (字符串)v.getTag(R.drawable.ic_launcher));
            PackageManager PM = v.getContext()getPackageManager()。
            名单< ResolveInfo> activityList = pm.queryIntentActivities(
                    shareIntent,0);
            对于(最终ResolveInfo应用程序:activityList){
                如果((app.activityInfo.name)。载(脸谱)){
                    最后ActivityInfo活性= app.activityInfo;
                    最终的组件名名称=新的组件名(
                            activity.applicationInfo.packageName,
                            activity.name);
                    shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
                    shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                            | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                    shareIntent.setComponent(名称);
                    。v.getContext()startActivity(shareIntent);
                    打破;
                }
            }
 

微博:

 意图shareIntent =新的意图(
                    android.content.Intent.ACTION_SEND);
            shareIntent.setType(text / plain的);
            shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
                    (字符串)v.getTag(R.string.app_name));
            shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,
                    (字符串)v.getTag(R.drawable.ic_launcher));
            PackageManager PM = v.getContext()getPackageManager()。
            名单< ResolveInfo> activityList = pm.queryIntentActivities(shareIntent,0);
            对于(最终ResolveInfo应用程序:activityList){
                如果(com.twitter.android.PostActivity
                        .equals(app.activityInfo.name)){
                    最后ActivityInfo活性= app.activityInfo;
                    最终的组件名名称=新的组件名(
                            activity.applicationInfo.packageName,
                            activity.name);
                    shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
                    shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                            | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                    shareIntent.setComponent(名称);
                    。v.getContext()startActivity(shareIntent);
                    打破;
                }
            }
 

解决方案

使用这种方法来共享照片与文字。调用此方法并传递参数nameofapp和的ImagePath。应用程序的名字的意思是一样的,你要共享,如Gmail,Facebook,Twitter的。

 私人无效份额(字符串nameApp,字符串的ImagePath,字符串文本){
尝试
{
    名单<意图> targetedShareIntents =新的ArrayList<意图>();
    意图份额=新的意图(android.content.Intent.ACTION_SEND);
    share.setType(为image / jpeg);
    名单< ResolveInfo> 。resInfo = getPackageManager()queryIntentActivities(份额,0);
    如果(!resInfo.isEmpty()){
        对于(ResolveInfo信息:resInfo){
                意图targetedShare =新的意图(android.content.Intent.ACTION_SEND);
                targetedShare.setType(为image / jpeg); //这里把你的MIME类型
                如果(info.activityInfo.packageName.toLowerCase()。包括(nameApp)|| info.activityInfo.name.toLowerCase()。包括(nameApp)){
                    targetedShare.putExtra(Intent.EXTRA_SUBJECT,文本);
                    targetedShare.putExtra(Intent.EXTRA_TEXT,文本);
                    targetedShare.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(新文件(的ImagePath)));
                    targetedShare.setPackage(info.activityInfo.packageName);
                    targetedShareIntents.add(targetedShare);
                }
            }
            意图chooserIntent = Intent.createChooser(targetedShareIntents.remove(0),选择应用程序共享);
            chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,targetedShareIntents.toArray(新Parcelable [] {}));
            startActivity(chooserIntent);
    }
}
赶上(例外五){
}
}
 

使用此为Facebook: -

 尝试{
文件文件路径=/mnt/sdcard/vmphoto.jpg; //这是你的变化是ACC镜像文件的路径。您的要求。
每股(脸谱,filePath.toString(),你好); <<<<< Hello是文本。发送累计。你REQ。

}
赶上(例外五){
       //可能你的应用程序,如Gmail,Facebook的等未安装异常发生或无法正常工作。
}
 

有关微博

 尝试{
文件文件路径=/mnt/sdcard/vmphoto.jpg; //这是你的变化是ACC镜像文件的路径。您的要求。
每股(推特,filePath.toString(),你好); <<<<< Hello是一个文本发送ACC。你REQ。

}
赶上(例外五){
       //可能你的应用程序,如Gmail,Facebook的等未安装异常发生或无法正常工作。
}
 

I'm developing an adroid app with wich I can share text (and later pictures too) via facebook and twitter. I found some code which is opening the facebook/twitter sharing window but the text that needs to be shared is in an EditText in the app so my question is how can i insert my text from the EditText to te text that will be shared (sorry for the bad english if you need further explanation or you didn't understood anything then i will try too explain it better). This is my code for both sharing methods:

Facebook:

Intent shareIntent = new Intent(
                    android.content.Intent.ACTION_SEND);
            shareIntent.setType("text/plain");
            shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
                    (String) v.getTag(R.string.app_name));
            shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,
                    (String) v.getTag(R.drawable.ic_launcher));
            PackageManager pm = v.getContext().getPackageManager();
            List<ResolveInfo> activityList = pm.queryIntentActivities(
                    shareIntent, 0);
            for (final ResolveInfo app : activityList) {
                if ((app.activityInfo.name).contains("facebook")) {
                    final ActivityInfo activity = app.activityInfo;
                    final ComponentName name = new ComponentName(
                            activity.applicationInfo.packageName,
                            activity.name);
                    shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
                    shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                            | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                    shareIntent.setComponent(name);
                    v.getContext().startActivity(shareIntent);
                    break;
                }
            }

Twitter:

Intent shareIntent = new Intent(
                    android.content.Intent.ACTION_SEND);
            shareIntent.setType("text/plain");
            shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
                    (String) v.getTag(R.string.app_name));
            shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,
                    (String) v.getTag(R.drawable.ic_launcher));
            PackageManager pm = v.getContext().getPackageManager();
            List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);
            for (final ResolveInfo app : activityList) {
                if ("com.twitter.android.PostActivity"
                        .equals(app.activityInfo.name)) {
                    final ActivityInfo activity = app.activityInfo;
                    final ComponentName name = new ComponentName(
                            activity.applicationInfo.packageName,
                            activity.name);
                    shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
                    shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                            | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                    shareIntent.setComponent(name);
                    v.getContext().startActivity(shareIntent);
                    break;
                }
            }

解决方案

Use this method to share photo with text. Call this method and pass argument nameofapp and imagepath. Name of app means like on which you want to share like gmail , facebook , twitter.

private void share(String nameApp, String imagePath,String text) {
try
{
    List<Intent> targetedShareIntents = new ArrayList<Intent>();
    Intent share = new Intent(android.content.Intent.ACTION_SEND);
    share.setType("image/jpeg");
    List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(share, 0);
    if (!resInfo.isEmpty()){
        for (ResolveInfo info : resInfo) {
                Intent targetedShare = new Intent(android.content.Intent.ACTION_SEND);
                targetedShare.setType("image/jpeg"); // put here your mime type
                if (info.activityInfo.packageName.toLowerCase().contains(nameApp) || info.activityInfo.name.toLowerCase().contains(nameApp)) {
                    targetedShare.putExtra(Intent.EXTRA_SUBJECT, text);
                    targetedShare.putExtra(Intent.EXTRA_TEXT,text);
                    targetedShare.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(imagePath)) );
                    targetedShare.setPackage(info.activityInfo.packageName);
                    targetedShareIntents.add(targetedShare);
                }
            }
            Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Select app to share");
            chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{}));
            startActivity(chooserIntent);
    }
}
catch(Exception e){
}
}

Use this for facebook :-

try {
File filePath = "/mnt/sdcard/vmphoto.jpg"; //This is imagefile path in your change it acc. to your requirement.
share("facebook",filePath.toString(),"Hello"); <<<<<Hello is text. send acc. to you req.

}
catch(Exception e) {
       //exception occur might your app like gmail , facebook etc not installed or not working correctly.
}

For twitter

try {
File filePath = "/mnt/sdcard/vmphoto.jpg"; //This is imagefile path in your change it acc. to your requirement.
share("twitter",filePath.toString(),"Hello"); <<<<<Hello is a text send acc. to you req.

}
catch(Exception e) {
       //exception occur might your app like gmail , facebook etc not installed or not working correctly.
}

这篇关于通过Android应用程序分享在Twitter和Facebook的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆