アプリケーション画面のスクリーンショットを、タイトル、Facebook ウォールの説明などの詳細と共有したいと考えています。どうすればこれを行うことができますか?facebookSDKを使いたいです。共有に利用できる他のオプションがあれば、私を助けてください。
質問する
1306 次
1 に答える
1
携帯電話にインストールされている Facebook アプリを使用すれば、Facebook SDK を使用せずに簡単に行うことができます。これらの簡単な手順に従ってください
まず、このようなビットマップ形式でアプリのスクリーンショットを撮る必要があります
View v1 = yourScreenShotView.getRootView();
v1.setDrawingCacheEnabled(true);
Bitmap bitmap= v1.getDrawingCache();
上からビットマップを取得したら、次のようにビットマップの uri を作成する必要があります
uri = getImageUri(context, bitmap);
そしてここにあなたの getImageUriFunction() があります
public static Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = Images.Media.insertImage(inContext.getContentResolver(),
inImage, "", "");
return Uri.parse(path);
}
URIを取得したら、この関数を使用してfbで共有する必要があります
share_screen(uri,"facebook");
ここにその機能があります
public void share_screen(Uri pngUri, final String sharingapp) {
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("image/png");
shareIntent
.putExtra(android.content.Intent.EXTRA_TEXT,
"your sharing text");
shareIntent.putExtra(android.content.Intent.EXTRA_STREAM, pngUri); // Share
// the
// image
// on
// Facebook
PackageManager pm = getApplicationContext().getPackageManager();
List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent,
0);
for (final ResolveInfo app : activityList) {
if ((app.activityInfo.name).contains(sharingapp)) {
c++;
final ActivityInfo activity = app.activityInfo;
final ComponentName name = new ComponentName(
activity.applicationInfo.packageName, activity.name);
shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
shareIntent.setComponent(name);
startActivity(shareIntent);
break;
}
}
if (c == 1)
c = 0;
else {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(
context);
alertDialog.setTitle("Alert");
alertDialog.setMessage("You don't have " + sharingapp
+ " installed.");
alertDialog.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
dialog.dismiss();
}
});
alertDialog.show();
}
}
}
私は自分のプロジェクトの 1 つからコピーしているだけですので、ご理解いただければ幸いです..!!
于 2015-01-01T05:58:31.323 に答える