2015-04-28 92 views
1

我一直在嘗試在Facebook共享意圖上共享文本內容,它似乎不讓我們共享文本出於某種原因。有誰知道他們爲什麼這樣做?共享文本的唯一方法是使用他們的SDK,這需要時間。只需要一個浪費我時間的理由。謝謝。Android的facebook應用程序共享意圖

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 
    shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, 
      getString(R.string.share_message_facebook)); 

    PackageManager pm = getActivity().getPackageManager(); 
    List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 
      0); 
    for (final ResolveInfo app : activityList) { 
     if ((app.activityInfo.name).contains("com.facebook") 
       && !(app.activityInfo.name) 
         .contains("com.facebook.messenger")) { 
      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); 

      return; 
     } 
    } 
+1

任何人都很難告訴你爲什麼你的「共享文本內容」代碼不起作用,當你的問題不包括該代碼。 – CommonsWare

+0

發佈你的代碼plz –

+0

註釋掉整個'PackageManager'的東西,並用'startActivity()'使用原來的'ACTION_SEND''Intent'。如果Facebook出現在選擇器中,並選擇它,那麼你的問題是你對Facebook實現的性質的假設(例如'com.facebook.messenger'包)是有缺陷的。 – CommonsWare

回答

0

根據他們的policy,你必須控制你的應用程序的用戶。如果您想代表他們發佈/共享,他們應該事先允許發佈權限。因此,您應該使用Facebook SDK。

+1

謝謝。現在我知道我爲什麼要浪費我的時間...... :)雖然,我仍然生氣地讓他們爲我們創建的每個應用程序在Facebook上創建應用程序。 –

相關問題