2017-03-02 134 views
0

這是我正在使用的代碼。意圖Android共享

public void share(String subject,String text) { 
    final Intent intent = new Intent(Intent.ACTION_SEND); 
    intent.setType("text/plain"); 
    intent.putExtra(Intent.EXTRA_SUBJECT, subject); 
    intent.putExtra(Intent.EXTRA_TEXT, text); 
    startActivity(Intent.createChooser(intent, getString(R.string.share))); 
} 

正在使用上述代碼共享內容。 但我需要的是當用戶分享的東西,我需要它的計數。 依奧斯我們使用

UIActivityViewController shareController = new UIActivityViewController(activityItems, null); 
shareController.ExcludedActivityTypes = new[] { 
        UIActivityType.Mail, 
        UIActivityType.PostToFacebook, 
        UIActivityType.Message, 
        UIActivityType.PostToTwitter, 
        UIActivityType.AirDrop 
              }; 

實現它,我們得到的迴應是 shareController.CompletionHandler + =(NSString的ARG1,ARG2布爾)=> 但是我們如何能夠在Android處理。

+0

意味着你想存儲任何應用程序的每個成功的份額計數,如FB,Gmail, –

+0

是的,完全chetan – Nawin

+0

我認爲你需要創建自定義的分享選擇器和當你從任何應用程序如Facebook選擇,然後在那點你可以存儲計數共享。 –

回答

0

自定義選擇器的Android例子就像是一個對話框,顯示應用程序的列表取決於您intent.Here,我已經寫了簡單的步驟來創建簡單的自定義選擇器,按照簡單的步驟來做到這一點。

1)創建意圖進行分享或發送操作,

Intent email = new Intent(Intent.ACTION_SEND); 
email.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
email.putExtra(Intent.EXTRA_SUBJECT, "Hi"); 
email.putExtra(Intent.EXTRA_TEXT, "Hi,This is Test"); 

email.setType("text/plain"); 

2)創建AlertDialog設置在alertdialog應用程序,

final Dialog dialog = new Dialog(Custom_chooser.this); 
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
WindowManager.LayoutParams WMLP = dialog.getWindow().getAttributes(); 
WMLP.gravity = Gravity.CENTER; 
dialog.getWindow().setAttributes(WMLP); 
dialog.getWindow().setBackgroundDrawable(
new ColorDrawable(android.graphics.Color.TRANSPARENT)); 
dialog.setCanceledOnTouchOutside(true); 
dialog.setContentView(R.layout.about_dialog); 
dialog.show(); 

3)獲取相關應用程序的列表使用ResolveInfo的具體意圖,

List<ResolveInfo> launchables=pm.queryIntentActivities(email, 0); 
Collections.sort(launchables,newResolveInfo.DisplayNameComparator(pm)); 

4)設置應用程序列表離子到自定義列表視圖。

adapter=new AppAdapter(pm, launchables); 
lv.setAdapter(adapter); 

5)最後,lanch特定的應用程序時,請從列表視圖的應用程序列表中的應用程序,

ResolveInfo launchable=adapter.getItem(position); 
ActivityInfo activity=launchable.activityInfo; 
ComponentName name=new ComponentName(activity.applicationInfo.packageName, 
activity.name); 
email.addCategory(Intent.CATEGORY_LAUNCHER); 
email.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
email.setComponent(name); 
startActivity(email); 

當你點擊你知道你選擇分享自己的內容的應用程序列表項並且在這裏您可以計算該應用程序。

+0

謝謝你chetan – Nawin

+0

@Nawin如果上面的答案幫助你,然後請接受它。 –