在我正在處理的應用程序中,我需要知道用戶用來共享內容以記錄日誌的「ACTION_SEND sharer」(Twitter,Facebook,SMS,Email ...)它用於統計目的。無論如何要這樣做?檢測用於共享某些內容的共享者
我有一些想法,其中之一是修改這些共享者的目標意圖指向一個接收者意圖,將收到共享者選擇,做任何我們需要的數據,然後調用目標的最終目標分享者(推特,臉書,短信,電子郵件......)。對於最後一步,我想我需要知道每個目標應用程序的共享Action。
問候
UPDATE1
要ilustrate,我分享我目前使用共享內容,定製根據目標共享資源的意圖額外的方法:
private void shareItem(String title, String link) {
// Standard message to send
String msg = title + " " + link;
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(share, 0);
if (!resInfo.isEmpty()) {
List<Intent> targetedShareIntents = new ArrayList<Intent>();
Intent targetedShareIntent = null;
for (ResolveInfo resolveInfo : resInfo) {
String packageName = resolveInfo.activityInfo.packageName;
targetedShareIntent = new Intent(android.content.Intent.ACTION_SEND);
targetedShareIntent.setType("text/plain");
// Find twitter: com.twitter.android...
if ("com.twitter.android".equals(packageName)) {
targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, msg);
} else if ("com.google.android.gm".equals(packageName)) {
targetedShareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, title);
targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, Uri.encode(title + "\r\n" + link));
} else if ("com.android.email".equals(packageName)) {
targetedShareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, title);
targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, Uri.encode(title + "\n" + link));
} else {
// Rest of Apps
targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, msg);
}
targetedShareIntent.setPackage(packageName);
targetedShareIntents.add(targetedShareIntent);
}
Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), getResources().getString(R.string.share));
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[] {}));
startActivityForResult(chooserIntent, 0);
}
}
已解答
有關指示s在這個鏈接:http://goo.gl/hf8Kg
你能否解釋這是什麼 - R.string.share包含? –
@Basim Sherif這只是一個資源字符串,其中包含對話框標題(類似「與...共享」)。 – jihonrado