{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","results":{"codes":[]},"settings":"","params":[]},"next":{"description":"","pages":[]},"title":"Android","type":"basic","slug":"android","excerpt":"","body":"# Dito Android SDK\n\n### Exemplo de implementação\n[Exemplo](https://github.com/ditointernet/sdk_mobile_android/tree/sdk-kotlin/DitoSDK/samplekotlin)\n\n## Dependência\n\nNo build.gradle da diretório raiz do projeto você deve adicionar a URL do repositiro\n\n```\nallprojects {\n repositories {\n ...\n maven { url 'https://jitpack.io' }\n }\n}\n```\nE depois adiciona a dependência:\n\n```\ndependencies {\n implementation('com.github.ditointernet:sdk_mobile_android') {\n version {\n branch = 'sdk-kotlin'\n }\n }\n}\n```\n\n## Configuração\n\n### AndroidManifest\n\nNo AndroidManifest é onde você configura as chaves de acesso da sua aplicação:\n\n```\n<application>\n ...\n <meta-data android:name=\"br.com.dito.API_KEY\" android:value=\"<MY_API_KEY>\"/>\n <meta-data android:name=\"br.com.dito.API_SECRET\" android:value=\"<MY_APY_SCRET>\"/>\n</application>\n```\n\n#### Permissões\n\n```\n <uses-permission android:name=\"android.permission.INTERNET\" />\n```\n\n## Inicialização\n\nNo metodo onCreate da sua classe que estende de `Application` você deve iniciar o SDK:\n\n```\noverride fun onCreate() {\n super.onCreate()\n Dito.init(this, Options(2)\n}\n```\n\n`Options` não é uma configuração obrigatório, e você pode usa-lo para as seguintes configurações:\n\n* **retry** (default = 5) - É numero de tentativas que o SDK vai fazer de envio do evento.\n\n* **iconNotification** - É o Ressource ID do icone para notificação\n\n* **contentIntent** - É a Intent que será aberta quando o usuário clicar na notificação. Caso esse valor essa *null*, vamos tentar recuperar a Activity que está configurada como `<action android:name=\"android.intent.action.MAIN\" />`.\n\n## Envio de eventos\n\n### Indentificar Usuário\n\nPara identificar um usuário é preciso criar um objeto `Identify` passando no construtor um ID.\n\n```\nval identify = Identify(\"85496430259\")\nDito.identify(identify, { callback() })\n```\n\nA classe `Identify` tem os seguintes parâmetros:\n\n* id - Identificador do usuário, obrigatório.\n* name - Nome do usuário.\n* email - E-mail do usuário\n* gender - Orientação sexual do usuário\n* location - Localização do usuário\n* birthday - Data de nascimento do usuário\n* data - É um objeto do tipo `CustomData` que aceita parâmetros customizados.\n\n### Evento\n\n```\nDito.track(Event(\"comprou\", 2.5))\n```\n\nA classe `Event`tem os seguintes parâmetros:\n\n* action - Nome do evento, obrigatório.\n* revenue - Receita do evento.\n* data - É um objeto do tipo `CustomData` que aceita parâmetros customizados.\n\n## Push Notification\n\nA Dito usa o FCM para envio das notificaões, o primeiro passo é você configurar as dependências do FCM:\n\n```\ndependencies {\n implementation 'com.google.firebase:firebase-core:16.0.4'\n implementation \"com.google.firebase:firebase-messaging:17.3.4\"\n}\n```\n\nE configurar o seu projeto seguindo da documentação oficial do FCM. [Clique aqui](https://firebase.google.com/docs/cloud-messaging/android/client).\n\n### Recuperar e registrar token\n\n```\nFirebaseInstanceId.getInstance().instanceId.addOnSuccessListener {\n it?.token?.let {\n Dito.registerDevice(it)\n }\n}\n```\n\n### Deletar token\n\n```\nDito.unregisterDevice(token)\n```\n\n### Registrar leitura da notificação\n\nO metódo `notificationRead` recebe como parâmetro o ID da notificação que é enviado pela Dito, no atributo data e também o reference do usuário. Para interceptar as notificações consulte a documentação oficial do FCM. [Clique aqui](https://firebase.google.com/docs/cloud-messaging/android/receive).\n\n```\nDito.notificationRead(notification, reference)\n```\n\n### Notificação simples\n\nA Dito disponibiliza uma forma simples para receber e identificar a leitura das notificações, só adicionar as configurações abaixo no seu `AndroidManifest`:\n\n```\n<application>\n ...\n <service android:name=\"br.com.dito.ditosdk.notification.DitoMessagingService\">\n <intent-filter>\n <action android:name=\"com.google.firebase.MESSAGING_EVENT\" />\n </intent-filter>\n </service>\n\n <receiver android:name=\"br.com.dito.ditosdk.notification.NotificationOpenedReceiver\"/>\n</application>\n```","updates":[],"order":7,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"5d7fd6d3415c6b00c9322ab6","project":"5538fb24dc5dd00d00e1da91","version":{"version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["5538fb25dc5dd00d00e1da95","5538feec27f8540d0024f00e","5547cbd3d3427d0d00cd6e2d","554a574f0b54d30d007fe0f9","55afbdbef202b12100cd9eeb","5c016f198e69b802d4385e25","5c81470b175ad6002457d9fa","5c81472e74fd5a0063420bae","5c81476b2dd69100430ea5a4"],"_id":"5538fb25dc5dd00d00e1da94","createdAt":"2015-04-23T14:01:09.040Z","project":"5538fb24dc5dd00d00e1da91","__v":9,"releaseDate":"2015-04-23T14:01:09.040Z"},"category":{"sync":{"isSync":false,"url":""},"pages":["5538ff4227f8540d0024f00f","554264348aeff51700a20e44","5547c963d3427d0d00cd6e28","5547c9ea70b82f0d0027c312","5547c9fc70b82f0d0027c314","5547ca09d3427d0d00cd6e2a","555cbc2a15a89b0d00c1af58","5566fa95f579050d00c3d63e"],"title":"SDKs","slug":"sdks","order":1,"from_sync":false,"reference":false,"_id":"5538feec27f8540d0024f00e","createdAt":"2015-04-23T14:17:16.792Z","project":"5538fb24dc5dd00d00e1da91","__v":8,"version":"5538fb25dc5dd00d00e1da94"},"user":"55bbb13fa8400c2d00873f1e","createdAt":"2019-09-16T18:39:15.083Z","__v":0,"parentDoc":null}