2015-01-01 3 views
0

Я хочу поделиться снимком экрана моего приложения с некоторыми деталями, такими как название, описание на стене facebook. Пожалуйста, кто-нибудь может мне помочь, как я могу это сделать? Я хочу использовать facebookSDK. Если какие-либо другие варианты доступны для обмена, пожалуйста, помогите мне.Растровое изображение совместного доступа на стене Facebook

ответ

1

Вы можете просто сделать это без использования Facebook SDK с помощью приложения facebook, установленного на вашем телефоне. Просто следуйте этим простым шагам

Итак, прежде всего, вы должны принять скриншот вашего приложения в виде растрового изображения, как этот

View v1 = yourScreenShotView.getRootView(); 
v1.setDrawingCacheEnabled(true); 
Bitmap bitmap= v1.getDrawingCache(); 

После того, как вы получите растровое изображение сверху, то вы должны сделать УИР растровый как этот

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

После вы получите ваш Ури, вы должны разделить, что на ФБ с этой функцией

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

    } 
} 

Я просто скопировать его из одного моего проекта, так надеюсь, что вы Понимаю..!!

+0

Я надеюсь, что этот фрагмент кода из вашего последнего кода приложения – yAs91

+0

lol .. это был из моего первого проекта. это не работает? –

+0

Этот код работает, но текст не используется. Это та же проблема, что и в моем коде. – yAs91