У меня есть несколько проблем с моим приложением для Android. Я хочу разделить некоторый текст и фотографию к fb и Твиттеру. Первая проблема состоит в том, что я не могу скопировать текст от своего textfield до fb сообщения..., я подразумеваю, что у меня есть текстовое поле с текстом, который вы хотите разделить и 2 кнопки (fb, Твиттер), и сторона Твиттера хорошо работает, но я не могу приложить текст к fb сообщению (окно появляется на толчке кнопки, но это чисто). Вот мой код для разделения на facebbok:
Intent shareIntent = new Intent(
android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
txt.getText());
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,
txt.getText());
PackageManager pm = v.getContext().getPackageManager();
List 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);
v.getContext().startActivity(shareIntent);
break;
}
}
Моя другая проблема состоит в том, что мой браузер фотографий дает мне путь файла как это: "внешние/изображения/СМИ/фотография" и я, хотя это проблема - то, что я должен скопировать расширение также (.jpg и т.д.), но это не он. Если я использую прямой путь: "/mnt/sdcard/DCIM/01.jpg" это хорошо работает. Может кто-то помогать мне, как найти прямой путь фотографии или как может я изменять свой код, что это работает с первым:
private void share(String nameApp, String imagePath, String text) {
try {
List targetedShareIntents = new ArrayList();
Intent share = new Intent(android.content.Intent.ACTION_SEND);
share.setType("image/jpeg");
List resInfo = getPackageManager()
.queryIntentActivities(share, 0);
if (!resInfo.isEmpty()) {
for (ResolveInfo info : resInfo) {
Intent targetedShare = new Intent(
android.content.Intent.ACTION_SEND);
targetedShare.setType("image/jpeg");
if (info.activityInfo.packageName.toLowerCase().contains(
nameApp)
|| info.activityInfo.name.toLowerCase().contains(
nameApp)) {
targetedShare.putExtra(Intent.EXTRA_SUBJECT, text);
targetedShare.putExtra(Intent.EXTRA_TEXT, text);
targetedShare.putExtra(Intent.EXTRA_STREAM,
Uri.fromFile(new File(imagePath)));
targetedShare.setPackage(info.activityInfo.packageName);
targetedShareIntents.add(targetedShare);
}
}
Intent chooserIntent = Intent.createChooser(
targetedShareIntents.remove(0), "Select app to share");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,
targetedShareIntents.toArray(new Parcelable[] {}));
startActivity(chooserIntent);
}
} catch (Exception e) {
}
}
Спасибо ожидается...