Compartilhar Imagens do meu aplicativo nas Redes Sociais

10/05/2017

0

Boa tarde Galera!

Alguém aqui já fez algum aplicativo android para compartilhar imagens nas redes sociais?

Quando eu chamo a função para compartilhar, consigo escolher a rede social que quero compartilhar a imagem, (Facebook, instagram, whatsApp, etc..) mas na hora do envio, nao aparece a imagem que irei compartilhar, independente da rede social que eu tenha selecionado.

Alguém aí, teria como me informar a forma que é feito para compartilhar imagens do meu aplicativo nas redes sociais?

Abs.
Allison Morais

Allison Morais

Responder

Post mais votado

11/05/2017

Olá! Em qual linguagem de programação você está desenvolvendo? Se for no Delphi por exemplo, já existe uma ação (TActionList) que faz esse processo automaticamente

Jones Granatyr

Jones Granatyr
Responder

Mais Posts

13/05/2017

Allison Morais

Estou desenvolvendo em Java, utilizando a IDE Android Studio.
Já busquei alguns exemplos na internet para fazer essa função, mas ainda não tive sucesso!

Quando eu clico no botão de compartilhar, vem as opções para eu escolher a rede social que eu quero compartilhar a imagem, porém, ao selecionar o facebook por exemplo, a imagem não carrega ao ser postado, somente me da a opção para que eu possa colocar um comentário na postagem .

Hoje, o meu código está assim:

public void onClick(View view) {

StringBuilder strBuilder = new StringBuilder();
strBuilder.append( "android.resource://" )
// defina o seu package aqui
.append( "com.example.morais.redessociais/" )
//drawable a ser capturado, repare que esse é o drawable definido no src do ImageView
.append( "drawable/mensagemstatica.jpeg" );

//captura a uri do drawable que está no Imageview
Uri uriImage = Uri.parse( strBuilder.toString() );
// cria a intent e define a ação
Intent intent = new Intent( Intent.ACTION_SEND );
// tipo de conteúdo da intent
intent.setType( "image/*" );
// stream a ser compartilhado

//ImageView imageView = ( ImageView ) findViewById( R.id.imageView );
//imageView.setImageResource( R.drawable.mensagemstatica );

intent.putExtra(Intent.EXTRA_STREAM, uriImage);

startActivity(Intent.createChooser(intent, "Compartilhar imagem"));

}
Responder

27/05/2017

Allison Morais

Boa noite Galera, enfim entendi e achei a solução para este problema ;)


O que acontece, é que para esse tipo de função, você deve fazer antes de mais nada, com que seu aplicativo verifique a permissão de leitura e escrita em tempo de execução, e caso não tenha, deverá exibir a mensagem para o usuário permitir o aplicativo ter esses acessos.
Isso passou a ser exigido na versão 6 (Marshmallow) e ao mesmo tempo se o targetSdkVersion da APP for igual ou superior a API 23.

Deixarei uma "receita de bolo" abaixo para quem quiser utilizar essa função em seus aplicativos:

//Para Início, adicionem as tags abaixo em seu manifest
< uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
< uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

////Função abaixo é referente ao evento do botão "Compartilhar Imagem"

public void onClick(View view)
{
PedirPermissao();
Compartilhar();
}

////Função abaixo serve para verificar permissão de leitura e escrita em tempo de execução, e em caso não tiver, pedir permissão ao usuário.

private void PedirPermissao() {

int permissionCheck = ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.READ_EXTERNAL_STORAGE);

if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, READ_EXTERNAL_STORAGE);
} else {
//Toast.makeText(MainActivity.this, "Permissao de leitura já foi concedida!", Toast.LENGTH_LONG).show();

int permissionCheckEscrita = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE);

if (permissionCheckEscrita != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(
this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE);
} else {
//Toast.makeText(MainActivity.this, "permissão de escita já foi concedida!", Toast.LENGTH_LONG).show();
}
}
}
//// Abaixo, é a função para compartilhar a imagem nas redes sociais que o usuário vai selecionar após o clique do botão "Compartilhar Imagem". Lembre-se, para chegar aqui, as permissões de leitura e escrita já deverão estar concedidas pelo o usuário.

private void Compartilhar()
{
Bitmap icon = BitmapFactory.decodeResource(getResources(),
R.drawable.ImagemStatica); //aqui é onde está a sua imagem, e no caso, o nome da imagem que eu estou compartilhando é ImagemStatica.
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpg");

ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "COMPARTILHAMENTO MORAIS");
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpg"); // note que eu identifico o formato da imagem q estou compartilhando. No caso, jpg.
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
values);

OutputStream outstream;
try {
outstream = getContentResolver().openOutputStream(uri);
icon.compress(Bitmap.CompressFormat.JPEG, 100, outstream);
outstream.close();
} catch (Exception e) {
System.err.println(e.toString());
}

//mShareActionProvider = (ShareActionProvider) getmShareActionProvider(uri);

share.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(share, "Share Image"));
}

Bom é isso galera... Vamos ao próximo desafio hehe
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar