Para resolver esse problema no Android 11, adicione o seguinte bloco de queries
a AndroidMainfest.xml
:
<manifest package="com.example.app"> <queries> <provider android:authorities="com.facebook.katana.provider.PlatformProvider" /> </queries> ... </manifest>
Você pode usar um número de identificação do aplicativo do Facebook em vários aplicativos do Android. Basta usar o mesmo número de identificação do aplicativo em outro aplicativo para login, compartilhamento, entre outros.
Para deep linking e abertura do aplicativo por meio de notificações e de outros meios, há suporte apenas a uma única combinação de nome de classe/nome de pacote.
Se você quiser suporte multiaplicativo para deep linking, consulte App Links.
Você pode substituir cadeias de caracteres no SDK do Facebook para Android, fornecendo uma tradução em seu próprio arquivo strings.xml
para a localidade desejada.
O arquivo strings.xml
no diretório facebook/res/values/
contém todas as cadeias de caracteres que o SDK usa. O nome dos recursos da cadeia de caracteres deve ser autoexplicativo.
Para saber mais, consulte o Guia do Desenvolvedor do Android: Como localizar com recursos.
Você pode baixar as versões anteriores do SDK em downloads do SDK .
Todo lançamento do SDK do Facebook para Android com o diálogo de compartilhamento nativo também inclui um APK para o aplicativo do Facebook.
Este APK vinha no download do SDK até o lançamento da 3.14.1. Após esse período, ele se tornou um download separado. Encontre os APKs na nossa Página de Downloads.
É só instalar o APK do Facebook no emulador ou dispositivo Android e testar o diálogo de compartilhamento nativo do aplicativo.
Normalmente, as bibliotecas do Android podem usar BuildConfig.DEBUG
para determinar se o aplicativo está em modo de depuração. Entretanto, devido a um [erro no Gradle] (https://code.google.com/p/android/issues/detail?id=52962), as bibliotecas do Android são sempre criadas com DEBUG
definido como falso. Como solução alternativa, há um método FacebookSdk.setIsDebugEnabled(boolean)
para que você possa fazer a configuração direta do modo de depuração do aplicativo. Isso permite o log de depuração do SDK.
Você também pode definir comportamentos de log com FacebookSdk.addLoggingBehavior(LogginBehavior)
para ativar o log para diferentes categorias de mensagens. Confira a Referência do SDK do Android, LoggingBehavior.
O diálogo de compartilhamento faz retornos de chamada no onSuccess
e onCancel
em uma ação de usuário.
onSuccess
quando o usuário compartilha com sucesso. Além disso, haverá também um postId
na classe Sharer.Result
se o usuário tiver dado permissões publish_actions
ao aplicativo. Se o usuário não tiver entrado com o Login no Facebook, esse método também será chamado se o usuário clicar em Cancelar. onCancel
se alguém clicar no botão X
do diálogo de compartilhamento; ou se alguém entrar com o Login no Facebook e clicar em Cancelar.Quando você solicita permissões de publicação, pode aparecer o erro:
Essa mensagem de erro significa que o aplicativo está tentando solicitar novas permissões antes da conclusão da solicitação anterior. Todas as solicitações de permissões são assíncronas, e não é possível solicitar novas permissões até que a solicitação anterior seja concluída.
Confira os nossos exemplos de aplicativos fornecidos com o SDK, como o Scrumptious ou o Hello Facebook, para ver como solicitar novas permissões em várias etapas.
Se não houver erros nos registros, provavelmente a solicitação nunca foi executada. Para executar o GraphRequest
, chame o método executeAsync
.
Para fazer login ou usar os diálogos de compartilhamento nativos, conte ao Facebook sobre a chave que você usa para assinar seus aplicativos.
Esse é um hash de chave que é um hash SHA-1 da chave usada para assinar seu aplicativo. Geralmente, pelo menos duas chaves diferentes serão usadas, uma para o desenvolvimento e depuração e uma para lançamento. Verifique que os valores foram adicionados na página de configurações do seu aplicativo.
Para obter mais informações, consulte Introdução ao SDK do Android - Criar um hash de chave de desenvolvimento.
A causa mais comum é a não configuração de um ContentProvider
em seu AndroidManifest.xml
. Não se esqueça de adicioná-lo ao seu arquivo AndroidManifest.xml
com o número de identificação do aplicativo. Confira Como compartilhar no Android - Pré-requisitos.