2013-07-19 33 views
0

可以使用共享意圖共享到Facebook。當您點擊發送按鈕時,彈出對話框中會顯示設備上設置的默認應用程序列表。我的問題是,是否有可能只使用共享意圖共享一個應用程序。例如使用共享意圖只發送到Facebook。共享意圖直接打開本地Facebook應用程序。內置Android共享模塊,Facebook Android應用程序

我發現這個鏈接:http://vnstep.wordpress.com/2012/04/14/share-via-android/

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 
    shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "anc"); 
    shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "ccc"); 
    PackageManager pm = context.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); 
      context.startActivity(shareIntent); 
      break; 
     } 
    } 

得到錯誤日誌

07-19 21:26:30.320: E/AndroidRuntime(4974): FATAL EXCEPTION: main 
07-19 21:26:30.320: E/AndroidRuntime(4974): java.lang.RuntimeException: Unable to start activity ComponentInfo{fb.app/fb.app.MainActivity}: java.lang.NullPointerException 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2182) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2207) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at android.app.ActivityThread.access$600(ActivityThread.java:139) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at android.os.Handler.dispatchMessage(Handler.java:99) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at android.os.Looper.loop(Looper.java:137) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at android.app.ActivityThread.main(ActivityThread.java:4899) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at java.lang.reflect.Method.invoke(Method.java:511) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at dalvik.system.NativeStart.main(Native Method) 
07-19 21:26:30.320: E/AndroidRuntime(4974): Caused by: java.lang.NullPointerException 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at fb.app.MainActivity.onCreate(MainActivity.java:54) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at android.app.Activity.performCreate(Activity.java:5008) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2136) 
07-19 21:26:30.320: E/AndroidRuntime(4974):  ... 11 more 

回答

0

不能過濾來自份額的意圖的任何應用程序。如果你仍然想這樣做,那麼使用Facebook SDK。

+0

但sdk不提供Facebook的內置android共享模塊彈出窗口? – Dimitri

+0

但是你可以實現這一點。 –

+0

請問如何爲我開始一個教程 – Dimitri

相關問題