0

アプリケーション画面のスクリーンショットを、タイトル、Facebook ウォールの説明などの詳細と共有したいと考えています。どうすればこれを行うことができますか?facebookSDKを使いたいです。共有に利用できる他のオプションがあれば、私を助けてください。

4

1 に答える 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 に答える