如何使用Android在Facebook上分享我们自己的静态状态
我正在开发一个应用程序。 当我点击按钮时,我试图以Facebook和Twitter的状态分享我的应用程序的信息 当我点击twitter按钮时,我想分享的状态会自动推特但是在facebook中,我不能在facebook共享状态窗口的“显示空白文本框”中分享我想分享的信息。 我错在哪里请告诉我 这是我的密码如何使用Android在Facebook上分享我们自己的静态状态,android,facebook,twitter,share,socialauth,Android,Facebook,Twitter,Share,Socialauth,我正在开发一个应用程序。 当我点击按钮时,我试图以Facebook和Twitter的状态分享我的应用程序的信息 当我点击twitter按钮时,我想分享的状态会自动推特但是在facebook中,我不能在facebook共享状态窗口的“显示空白文本框”中分享我想分享的信息。 我错在哪里请告诉我 这是我的密码 final String msg="Hie - " + "Message to share"; @Override protected void
final String msg="Hie - " +
"Message to share";
@Override
protected void onCreate(Bundle savedInstanceState)
{
.....................
.....................
static SocialAuthAdapter adapter;
adapter = new SocialAuthAdapter(new ResponseListener());
try
{
adapter.addConfig(Provider.TWITTER, "key", "BsiY4LH5Y4naSmb.............",null);
}
catch (Exception e)
{
e.printStackTrace();
}
imgtellfriend.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
anim = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.sequence);
imgtellfriend.startAnimation(anim);
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, msg);
sendIntent.setType("text/plain");
startActivity(sendIntent);
}
});
imgFb.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
anim = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.sequence);
imgFb.startAnimation(anim);
adapter.authorize(Catagories.this, Provider.FACEBOOK);
initShareIntent("com.facebook.katana");
}
});
imgtwiter.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
anim = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.sequence);
imgtwiter.startAnimation(anim);
adapter.authorize(Catagories.this, Provider.TWITTER);
}
});
}
private final class ResponseListener implements DialogListener
{
@Override
public void onComplete(Bundle values)
{
Log.d("Share-Bar", "Authentication Successful");
final String providerName = values.getString(SocialAuthAdapter.PROVIDER);
Log.d("Share-Bar", "Provider Name = " + providerName);
Toast.makeText(Catagories.this, providerName + " connected", Toast.LENGTH_SHORT).show();
adapter.updateStatus(msg, new MessageListener(), true);
}
@Override
public void onCancel()
{
Log.d("Share-Bar", "Authentication Cancelled");
}
@Override
public void onBack()
{
Log.d("Share-Bar", "Dialog Closed by pressing Back Key");
}
@Override
public void onError(SocialAuthError error)
{
initShareIntent("com.facebook.katana");
error.printStackTrace();
Log.d("Share-Bar 1", error.toString());
Log.d("Share-Bar 2", error.getMessage());
}
}
@SuppressLint("DefaultLocale")
private void initShareIntent(String type)
{
boolean found = false;
Intent share = new Intent(android.content.Intent.ACTION_SEND);
share.setType("text/plain");
// gets the list of intents that can be loaded.
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(share, 0);
if (!resInfo.isEmpty()){
for (ResolveInfo info : resInfo) {
Log.d("MEssage FB","--------- App :: "+info.activityInfo.packageName.toLowerCase());
if (info.activityInfo.packageName.toLowerCase().contains(type) ||
info.activityInfo.name.toLowerCase().contains(type) )
{
share.putExtra(Intent.EXTRA_SUBJECT, "ECard");
share.putExtra(Intent.EXTRA_TEXT, msg);
share.setPackage(info.activityInfo.packageName);
found = true;
break;
}
}
if (!found)
return;
startActivity(Intent.createChooser(share, "Select"));
}
}
private class MessageListener implements SocialAuthListener<Integer>
{
@Override
public void onExecute(String provider, Integer t)
{
Integer status = t;
if (status.intValue() == 200 || status.intValue() == 201 || status.intValue() == 204)
Toast.makeText(Catagories.this, "Message posted on " + provider, Toast.LENGTH_LONG).show();
else
Toast.makeText(Catagories.this, "Message not posted on " + provider, Toast.LENGTH_LONG).show();
}
@Override
public void onError(SocialAuthError e) {
}
final String msg=“Hie-”+
“分享信息”;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
.....................
.....................
静态社会授权适配器;
adapter=newsocialauthAdapter(newresponseListener());
尝试
{
adapter.addConfig(Provider.TWITTER,“key”,“BsiY4LH5Y4naSmb………”,null);
}
捕获(例外e)
{
e、 printStackTrace();
}
setOnClickListener(新的OnClickListener()
{
@凌驾
公共void onClick(视图arg0)
{
anim=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.sequence);
imgtellfriend.startAnimation(动画);
Intent sendIntent=新Intent();
sendIntent.setAction(Intent.ACTION\u SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT,msg);
sendIntent.setType(“文本/普通”);
星触觉(sendIntent);
}
});
setOnClickListener(新的OnClickListener()
{
@凌驾
公共void onClick(视图arg0)
{
anim=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.sequence);
imgFb.startAnimation(动画);
adapter.authorize(categories.this、Provider.FACEBOOK);
initShareIntent(“com.facebook.katana”);
}
});
setOnClickListener(新的OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
anim=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.sequence);
启动动画(动画);
adapter.authorize(Catagories.this、Provider.TWITTER);
}
});
}
私有最终类ResponseListener实现DialogListener
{
@凌驾
未完成的公共void(捆绑值)
{
Log.d(“共享条”、“认证成功”);
最终字符串providerName=values.getString(SocialAuthAdapter.PROVIDER);
Log.d(“共享栏”、“提供者名称=“+providerName”);
Toast.makeText(Catagories.this,providerName+“connected”,Toast.LENGTH_SHORT.show();
updateStatus(msg,newmessagelistener(),true);
}
@凌驾
公开作废
{
Log.d(“共享条”、“认证取消”);
}
@凌驾
公开作废回拨()
{
Log.d(“共享栏”,“按后退键关闭对话框”);
}
@凌驾
public void onError(社会授权错误)
{
initShareIntent(“com.facebook.katana”);
错误。printStackTrace();
Log.d(“共享条1”,error.toString());
Log.d(“共享条2”,error.getMessage());
}
}
@SuppressLint(“DefaultLocale”)
私有void initShareIntent(字符串类型)
{
布尔值=false;
意向共享=新意向(android.content.Intent.ACTION\u SEND);
share.setType(“文本/普通”);
//获取可以加载的意图列表。
List resInfo=getPackageManager().queryInputActivities(共享,0);
如果(!resInfo.isEmpty()){
对于(ResolveInfo:resInfo){
Log.d(“消息FB”,“应用程序:-:”+info.activityInfo.packageName.toLowerCase());
if(info.activityInfo.packageName.toLowerCase().contains(type)|
info.activityInfo.name.toLowerCase().contains(类型))
{
share.putExtra(Intent.EXTRA_主题,“ECard”);
share.putExtra(Intent.EXTRA_TEXT,msg);
share.setPackage(info.activityInfo.packageName);
发现=真;
打破
}
}
如果(!找到)
返回;
startActivity(Intent.createChooser(共享,“选择”));
}
}
私有类MessageListener实现SocialAuthListener
{
@凌驾
public void onExecute(字符串提供程序,整数t)
{
整数状态=t;
如果(status.intValue()==200 | | status.intValue()==201 | | | status.intValue()==204)
Toast.makeText(Catagories.this,“消息发布在”+provider,Toast.LENGTH_LONG.show()上);
其他的
Toast.makeText(Catagories.this,“消息未发布在”+提供者,Toast.LENGTH_LONG.show()上);
}
@凌驾
公共作废申报人(社会授权错误){
}
我正在使用socialauth library来实现这一点。socialauth library使用旧的facebook sdk。 不要用那个。 您可以直接使用意图过滤器在社交网络上共享 [更新了一个] 检查此项
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("image/png");
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"YOUR TEXT HERE");
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,"YOUR TEXT HERE");
shareIntent.putExtra(android.content.Intent.EXTRA_STREAM,pngUri);
PackageManager pm = getApplicationContext().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);
startActivity(shareIntent);
}
}
}
Intent shareIntent=newintent(android.content.Intent.ACTION\u SEND);
setType(“image/png”);
shareIntent.putExtra(android.content.Intent.EXTRA_主题,“此处的文本”);
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,“您的文本在此”);
putExtra(android.content.Intent.EXTRA_-STREAM,pngUri);
PackageManager pm=getApplicationContext().getPackageManager();
锂