android - subir - para que sirve la carpeta private en whatsapp
Cómo permitir al usuario publicar una imagen en la pared usando la carpeta SDCard (3)
Gracias por notificarme para obtener una respuesta aquí. Como ha visto aquí , enviaré una solicitud de aplicación a mi amigo de Facebook. Sin embargo, no es como publicar una foto en la pared de un amigo. Allí solo puedes publicar el ícono de la aplicación con la url ASK.
Si quieres publicar una foto en la pared de Friends con un mensaje, por favor revisa mi respuesta a continuación.
Bundle param = new Bundle();
param.putString("message", "picture caption");
param.putByteArray("picture", ImageBytes);
mAsyncRunner.request("me/photos", param, "POST", new SampleUploadListener());
En mi código anterior, ImageBytes es el byte [] de la imagen. Tendrá que jugar poco para seleccionar la imagen de la carpeta perticular y luego convertir esa imagen seleccionada en byte []. Use ese byte [] en mi código anterior.
Espero que te ayude.
Disfruta Codificando ... :)
Permitiré que el usuario publique un mensaje en su muro [amigo y usuario] junto con una única imagen estática , y para esa imagen estoy usando Web Image URL
Pero ahora deseo permitir que el usuario elija cualquier imagen individual de múltiples imágenes , como 10 imágenes almacenadas en una carpeta particular en SDCard , y luego publicar en Wall .
Así que aquí está mi pregunta, ¿cómo hacer eso?
Mi código existente para publicar una imagen estática en Wall , lea a continuación:
@Override
public void onClick(DialogInterface dialog, int which) {
Bundle params = new Bundle();
params.putString("to", String.valueOf(friendId));
params.putString("caption", getString(R.string.app_name));
params.putString("description", getString(R.string.app_desc));
params.putString("link", "http://www.google.com");
params.putString("picture",FacebookUtility.HACK_ICON_URL);
params.putString("name",getString(R.string.app_action));
FacebookUtility.facebook.dialog(FriendsList.this,
"feed", params, (DialogListener) new PostDialogListener());
}
}).setNegativeButton(R.string.no, null).show();
} catch (JSONException e) {
showToast("Error: " + e.getMessage());
}
FacebookUtility.java:-
public static final String HACK_ICON_URL = "http://2.bp.blogspot.com/-WuasmTMjMA4/TY0SS4TzIMI/AAAAAAAAFB4/6alyfOzWsqM/s320/flowers-wallpapers-love-blooms-roses-bunch-of-flowers.jpg";
Verifique la pantalla existente de mi aplicación,
Como puede ver en la pantalla anterior, estoy mostrando solo una imagen estática como he escrito anteriormente, pero ahora quiero permitir que el usuario elija una imagen de varias imágenes usando la tarjeta SD, mi ruta de tarjeta SD como: / sdcard / FbImages /
ahora quiero saber cómo colocar el botón en la pantalla de arriba [porque no estoy usando ningún xml personalizado para esto, esa es la característica nativa en FacebookSDK]
Así que aquí está mi pregunta sobre cómo abrir la carpeta sdcard y cómo elegir una sola imagen para publicar desde múltiples imágenes
tienes que encontrar la ruta para esa imagen.
intente seguir el código para seleccionar la imagen
btnSelect.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 0);
}
});
obtener ruta para la imagen seleccionada
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == 0) {
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
System.out.println("Image Path : " + selectedImagePath);
}
}
}
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
luego usa
params.putString("picture",selectedImagePath);
use it when pick bitmap from sdcard and give the path also
past this code.
protected void share(String nameApp, String imagePath, String text) {
// TODO Auto-generated method stub
try {
List<Intent> targetedShareIntents = new ArrayList<Intent>();
Intent share = new Intent(android.content.Intent.ACTION_SEND);
share.setType("image/jpeg");
List<ResolveInfo> 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"); // put here your mime
// type
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) {
}
}