{"id":639,"date":"2019-12-28T13:55:47","date_gmt":"2019-12-28T16:55:47","guid":{"rendered":"https:\/\/micheladrianomedeiros.com.br\/blog\/?p=639"},"modified":"2020-03-24T16:21:49","modified_gmt":"2020-03-24T19:21:49","slug":"android-6","status":"publish","type":"post","link":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/","title":{"rendered":"Android #6"},"content":{"rendered":"\n<p>Vamos fazer a conex\u00e3o com o Web Service para podermos fazer a busca pelo nome ou cidade da academia.<\/p>\n\n\n\n<p>Abra o arquivo build.grandle (Module: app). Vamos adicionar a biblioteca Gson nas depend\u00eancias.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">dependencies {\n    implementation fileTree(<strong>dir<\/strong>: <strong>'libs'<\/strong>, <strong>include<\/strong>: [<strong>'*.jar'<\/strong>])\n    implementation <strong>'androidx.appcompat:appcompat:1.0.2'\n    <\/strong>implementation <strong>'androidx.constraintlayout:constraintlayout:1.1.3'\n    <\/strong>testImplementation <strong>'junit:junit:4.12'\n    <\/strong>androidTestImplementation <strong>'androidx.test.ext:junit:1.1.0'\n    <\/strong>androidTestImplementation <strong>'androidx.test.espresso:espresso-core:3.1.1'\n    <\/strong><em>\/\/gson\n    <\/em>implementation <strong>'com.google.code.gson:gson:2.8.5'\n<\/strong>}<\/pre>\n\n\n\n<p>Depois de digitar clique em Sync Now.<\/p>\n\n\n\n<p>Crie uma nova classe chamada AcademiaCidade no pacote model.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"527\" height=\"423\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/image.png\" alt=\"\" class=\"wp-image-640\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/image.png 527w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/image-300x241.png 300w\" sizes=\"auto, (max-width: 527px) 100vw, 527px\" \/><\/figure><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>package br.com.micheladrianomedeiros.ondetreinar.model;\n\npublic class AcademiaCidade {\n\n    private Long id;\n    private String nome;\n    private String cidade;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getNome() {\n        return nome;\n    }\n\n    public void setNome(String nome) {\n        this.nome = nome;\n    }\n\n    public String getCidade() {\n        return cidade;\n    }\n\n    public void setCidade(String cidade) {\n        this.cidade = cidade;\n    }\n\n    @Override\n    public String toString() {\n        return \"AcademiaCidade{\" +\n                \"id=\" + id +\n                \", nome='\" + nome + '\\'' +\n                \", cidade='\" + cidade + '\\'' +\n                '}';\n    }\n}<\/code><\/pre>\n\n\n\n<p>Crie uma classe chamada HTTPService no pacote remote.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package br.com.micheladrianomedeiros.ondetreinar.remote;\n\nimport android.os.AsyncTask;\nimport android.util.Log;\nimport com.google.gson.Gson;\nimport com.google.gson.reflect.TypeToken;\nimport java.io.IOException;\nimport java.net.HttpURLConnection;\nimport java.net.MalformedURLException;\nimport java.net.URL;\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.Scanner;\n\nimport br.com.micheladrianomedeiros.ondetreinar.model.AcademiaCidade;\n\npublic class HTTPService extends AsyncTask&lt;Void, Void, List&lt;AcademiaCidade> > {\n\n    private final String word;\n\n    public HTTPService(String word){\n        this.word = word;\n    }\n\n    @Override\n    protected List&lt;AcademiaCidade> doInBackground(Void... voids) {\n        List&lt;AcademiaCidade> lista= new ArrayList&lt;>();\n        try {\n            \/\/URL url = new URL(\"http:\/\/192.168.1.113:8080\/academia\/\"+word);\n            URL url = new URL(\"https:\/\/academiablack.herokuapp.com\/academia\/\"+word);\n            Log.i(\"url \",url.getHost());\n            HttpURLConnection connection = (HttpURLConnection) url.openConnection();\n            connection.setRequestMethod(\"GET\");\n            connection.setRequestProperty(\"Accept\",\"application\/json\");\n            connection.setConnectTimeout(15000);\n            connection.connect();\n\n            StringBuilder resposta = new StringBuilder();\n            Scanner scanner = new Scanner(url.openStream());\n            while(scanner.hasNext()){\n                resposta.append(scanner.next());\n            }\n\n            TypeToken&lt;List&lt;AcademiaCidade>> token = new TypeToken&lt;List&lt;AcademiaCidade>>() {};\n            Gson gson = new Gson();\n            lista = gson.fromJson(String.valueOf(resposta), token.getType());\n        } catch (MalformedURLException e) {\n            e.printStackTrace();\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n        return lista;\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>Por algum motivo que ainda n\u00e3o descobri, quando executo o web service localmente funciona e quando tento capturar as informa\u00e7\u00f5es do web service no Heroku d\u00e1 erro.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>2019-12-28 14:42:52.765 12733-12816\/br.com.micheladrianomedeiros.ondetreinar W\/System.err: java.net.UnknownHostException: Unable to resolve host \"academiablack.herokuapp.com\": No address associated with hostname<\/code><\/pre>\n\n\n\n<p>No activity_main.xml eu adicionei um TextView. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    &lt;TextView\n        android:id=\"@+id\/teste\"\n        android:layout_width=\"fill_parent\"\n        android:layout_height=\"wrap_content\" \/><\/code><\/pre>\n\n\n\n<p>Abra o arquivo AndroidManifest.xml para adicionarmos a permiss\u00e3o de acesso a internet. <\/p>\n\n\n\n<p>Na verdade fiz v\u00e1rios testes, para ver se conseguia acessar o web service no Heroku, ent\u00e3o vou deixar a configura\u00e7\u00e3o completa.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?>\n&lt;manifest xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    package=\"br.com.micheladrianomedeiros.ondetreinar\">\n\n    &lt;uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"\/>\n    &lt;uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"\/>\n    &lt;uses-permission android:name=\"android.permission.INTERNET\"\/>\n\n    &lt;application\n        android:allowBackup=\"true\"\n        android:icon=\"@mipmap\/ic_launcher\"\n        android:label=\"@string\/app_name\"\n        android:roundIcon=\"@mipmap\/ic_launcher_round\"\n        android:supportsRtl=\"true\"\n        android:usesCleartextTraffic=\"true\"\n        android:theme=\"@style\/AppTheme\">\n        &lt;activity android:name=\".ReviewList\">&lt;\/activity>\n        &lt;activity android:name=\".MainActivity\">\n            &lt;intent-filter>\n                &lt;action android:name=\"android.intent.action.MAIN\" \/>\n\n                &lt;category android:name=\"android.intent.category.LAUNCHER\" \/>\n            &lt;\/intent-filter>\n        &lt;\/activity>\n    &lt;\/application>\n\n&lt;\/manifest><\/code><\/pre>\n\n\n\n<p>Vou deixar tamb\u00e9m a programa\u00e7\u00e3o completa do arquivo MainActivity.java.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package br.com.micheladrianomedeiros.ondetreinar;\n\nimport android.content.DialogInterface;\nimport android.content.Intent;\nimport android.os.Bundle;\nimport android.os.StrictMode;\nimport android.util.Log;\nimport android.view.Menu;\nimport android.view.MenuItem;\nimport android.view.View;\nimport android.widget.Button;\nimport android.widget.EditText;\nimport android.widget.Spinner;\nimport android.widget.TextView;\n\nimport androidx.appcompat.app.AlertDialog;\nimport androidx.appcompat.app.AppCompatActivity;\n\nimport java.util.List;\nimport java.util.concurrent.ExecutionException;\n\nimport br.com.micheladrianomedeiros.ondetreinar.model.AcademiaCidade;\nimport br.com.micheladrianomedeiros.ondetreinar.remote.HTTPService;\n\npublic class MainActivity extends AppCompatActivity {\n\n    private static final int MENU_GET_REVIEWS = Menu.FIRST;\n    private Spinner spinnerTypesGym;\n    private Button buttonSearchGym;\n    private EditText editTextSearchGym;\n\n    private TextView editTextTeste;\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n        editTextSearchGym = findViewById(R.id.search_gym);\n        spinnerTypesGym = findViewById(R.id.spinner_type_gym);\n        buttonSearchGym = findViewById(R.id.button_search_gym);\n        buttonSearchGym.setOnClickListener(buttonClickListener);\n\n        editTextTeste = findViewById(R.id.teste);\n\n        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();\n        StrictMode.setThreadPolicy(policy);\n    }\n\n    private View.OnClickListener buttonClickListener = new View.OnClickListener() {\n\n        @Override\n        public void onClick(View v) {\n            switch (v.getId()) {\n                case R.id.button_search_gym:\n                    boolean b = handleSearch();\n                    if (b) {\n                        listaDeAcademias();\n                    }\n                    break;\n                case View.NO_ID:\n                default:\n                    Log.i(\"erro\", \"nada\");\n                    break;\n            }\n        }\n    };\n\n    private void listaDeAcademias(){\n        HTTPService service = new HTTPService(editTextSearchGym.getText().toString());\n        try {\n            List&lt;AcademiaCidade> retorno = service.execute().get();\n            Log.i(\"retorno \", String.valueOf(retorno.size()));\n            editTextTeste.setText(retorno.toString());\n        } catch (ExecutionException e) {\n            e.printStackTrace();\n        } catch (InterruptedException e) {\n            e.printStackTrace();\n        }\n    }\n\n    private boolean handleSearch() {\n        if ((editTextSearchGym.getText() == null) ||\n                editTextSearchGym.getText().toString().equals(\"\")) {\n            new AlertDialog.Builder(this).setTitle(R.string.alert_label).\n                    setMessage(R.string.location_not_supplied_message).\n                    setPositiveButton(\"Continue\",\n                            new android.content.DialogInterface.OnClickListener() {\n                                public void onClick(DialogInterface dialog, int arg1) {\n                                    \/\/ Just close alert.\n                                }\n                            }).show();\n            return false;\n        }\n        return true;\n    }\n\n    @Override\n    public boolean onCreateOptionsMenu(Menu menu) {\n        super.onCreateOptionsMenu(menu);\n        menu.add(0, this.MENU_GET_REVIEWS, 0, R.string.menu_get_reviews).setIcon(\n                android.R.drawable.ic_menu_more);\n        return true;\n    }\n\n\n    public boolean onOptionsItemSelected(MenuItem item) {\n        switch (item.getItemId()) {\n            case MENU_GET_REVIEWS:\n                Intent intent = new Intent(this, ReviewList.class);\n                startActivity(intent);\n                return true;\n        }\n        return false;\n    }\n}<\/code><\/pre>\n\n\n\n<p>Executando localmente funciona. Quando eu descobrir porqu\u00ea n\u00e3o funciona no Heroku eu atualizo a informa\u00e7\u00e3o aqui ou nos pr\u00f3ximos artigos.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"422\" height=\"733\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/image-3.png\" alt=\"\" class=\"wp-image-643\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/image-3.png 422w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/image-3-173x300.png 173w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/figure><\/div>\n\n\n\n<p>Voltando tr\u00eas meses depois deste artigo, refiz o projeto porque n\u00e3o achei no meu pc o antigo.<\/p>\n\n\n\n<p>Agora est\u00e1 funcionando a chamada para o servidor do Heroku. Contudo, n\u00e3o apenas refiz o projeto como estou executando em uma rede sem proxy e tamb\u00e9m direto do celular.<\/p>\n\n\n\n<p>O resultado deu bom.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"576\" height=\"1024\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/03\/Screenshot_20200324-161312_Onde-Treinar-micheladrianomedeiroscombr-576x1024.jpg\" alt=\"\" class=\"wp-image-769\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/03\/Screenshot_20200324-161312_Onde-Treinar-micheladrianomedeiroscombr-576x1024.jpg 576w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/03\/Screenshot_20200324-161312_Onde-Treinar-micheladrianomedeiroscombr-169x300.jpg 169w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/03\/Screenshot_20200324-161312_Onde-Treinar-micheladrianomedeiroscombr-768x1365.jpg 768w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/03\/Screenshot_20200324-161312_Onde-Treinar-micheladrianomedeiroscombr-864x1536.jpg 864w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/03\/Screenshot_20200324-161312_Onde-Treinar-micheladrianomedeiroscombr.jpg 1080w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><\/figure><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vamos fazer a conex\u00e3o com o Web Service para podermos fazer a busca pelo nome ou cidade da academia. Abra o arquivo build.grandle (Module: app). Vamos adicionar a biblioteca Gson nas depend\u00eancias. dependencies { implementation fileTree(dir: &#8216;libs&#8217;, include: [&#8216;*.jar&#8217;]) implementation &#8216;androidx.appcompat:appcompat:1.0.2&#8217; implementation &#8216;androidx.constraintlayout:constraintlayout:1.1.3&#8217; testImplementation &#8216;junit:junit:4.12&#8217; androidTestImplementation &#8216;androidx.test.ext:junit:1.1.0&#8217; androidTestImplementation &#8216;androidx.test.espresso:espresso-core:3.1.1&#8217; \/\/gson implementation &#8216;com.google.code.gson:gson:2.8.5&#8217; } Depois de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34],"tags":[],"class_list":["post-639","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.5 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Android #6 - Viciados em Aprender<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android #6\" \/>\n<meta property=\"og:description\" content=\"Vamos fazer a conex\u00e3o com o Web Service para podermos fazer a busca pelo nome ou cidade da academia. Abra o arquivo build.grandle (Module: app). Vamos adicionar a biblioteca Gson nas depend\u00eancias. dependencies { implementation fileTree(dir: &#039;libs&#039;, include: [&#039;*.jar&#039;]) implementation &#039;androidx.appcompat:appcompat:1.0.2&#039; implementation &#039;androidx.constraintlayout:constraintlayout:1.1.3&#039; testImplementation &#039;junit:junit:4.12&#039; androidTestImplementation &#039;androidx.test.ext:junit:1.1.0&#039; androidTestImplementation &#039;androidx.test.espresso:espresso-core:3.1.1&#039; \/\/gson implementation &#039;com.google.code.gson:gson:2.8.5&#039; } Depois de [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/\" \/>\n<meta property=\"og:site_name\" content=\"Viciados em Aprender\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-28T16:55:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-03-24T19:21:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/android-logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"425\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"blackzig\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"blackzig\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/\"},\"author\":{\"name\":\"blackzig\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"headline\":\"Android #6\",\"datePublished\":\"2019-12-28T16:55:47+00:00\",\"dateModified\":\"2020-03-24T19:21:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/\"},\"wordCount\":224,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"image\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/android-logo.png\",\"articleSection\":[\"Android\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/\",\"name\":\"Android #6 - Viciados em Aprender\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/android-logo.png\",\"datePublished\":\"2019-12-28T16:55:47+00:00\",\"dateModified\":\"2020-03-24T19:21:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/#primaryimage\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/android-logo.png\",\"contentUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/android-logo.png\",\"width\":1000,\"height\":425},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/android-6\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android #6\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/\",\"name\":\"Viciados em Aprender\",\"description\":\"Queremos aprender tudo o que for poss\u00edvel nesta vida.\",\"publisher\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\",\"name\":\"blackzig\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"contentUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"width\":1920,\"height\":1080,\"caption\":\"blackzig\"},\"logo\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\"},\"sameAs\":[\"http:\\\/\\\/www.micheladrianomedeiros.com.br\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Android #6 - Viciados em Aprender","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/","og_locale":"pt_PT","og_type":"article","og_title":"Android #6","og_description":"Vamos fazer a conex\u00e3o com o Web Service para podermos fazer a busca pelo nome ou cidade da academia. Abra o arquivo build.grandle (Module: app). Vamos adicionar a biblioteca Gson nas depend\u00eancias. dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' \/\/gson implementation 'com.google.code.gson:gson:2.8.5' } Depois de [&hellip;]","og_url":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/","og_site_name":"Viciados em Aprender","article_published_time":"2019-12-28T16:55:47+00:00","article_modified_time":"2020-03-24T19:21:49+00:00","og_image":[{"width":1000,"height":425,"url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/android-logo.png","type":"image\/png"}],"author":"blackzig","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"blackzig","Tempo estimado de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/#article","isPartOf":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/"},"author":{"name":"blackzig","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"headline":"Android #6","datePublished":"2019-12-28T16:55:47+00:00","dateModified":"2020-03-24T19:21:49+00:00","mainEntityOfPage":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/"},"wordCount":224,"commentCount":0,"publisher":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"image":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/#primaryimage"},"thumbnailUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/android-logo.png","articleSection":["Android"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/","name":"Android #6 - Viciados em Aprender","isPartOf":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/#primaryimage"},"image":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/#primaryimage"},"thumbnailUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/android-logo.png","datePublished":"2019-12-28T16:55:47+00:00","dateModified":"2020-03-24T19:21:49+00:00","breadcrumb":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/#primaryimage","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/android-logo.png","contentUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/android-logo.png","width":1000,"height":425},{"@type":"BreadcrumbList","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/android-6\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/micheladrianomedeiros.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Android #6"}]},{"@type":"WebSite","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#website","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/","name":"Viciados em Aprender","description":"Queremos aprender tudo o que for poss\u00edvel nesta vida.","publisher":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/micheladrianomedeiros.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":["Person","Organization"],"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e","name":"blackzig","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","contentUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","width":1920,"height":1080,"caption":"blackzig"},"logo":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg"},"sameAs":["http:\/\/www.micheladrianomedeiros.com.br\/"]}]}},"_links":{"self":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/comments?post=639"}],"version-history":[{"count":3,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/639\/revisions"}],"predecessor-version":[{"id":770,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/639\/revisions\/770"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media\/215"}],"wp:attachment":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media?parent=639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/categories?post=639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/tags?post=639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}