Ir para conteúdo
Carcleo

Conexão com a INTERNET no Android Studio

Recommended Posts

Olá, tenho o form abaixo onde eu leio um json à partir de um endereço na web

http://www.hotplateprensas.com.br/ws/clientest.php

que me entrega uma string json do tipo

{
  "clientes":[
     {
       "idClientesT":"1",
       "tipo":"s",
       "nome":"Carlos"},
     {
       "idClientesT":"2",
       "tipo":"s",
       "nome":"Rogério"
     }
  ]
}

Então, pego ela no AndroidStudio com a Activity abaixo:

package carcleo.com.radiosingular;

import android.os.Bundle;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import carcleo.com.radiosingular.classes.JsonClass;

public class form extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.form);
    }

    public void listaClientes (View View) {

        if (android.os.Build.VERSION.SDK_INT > 9){
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }
        
        String url = "http://hotplateprensas.com.br/ws/clientest.php";
        JsonClass json = new JsonClass();
        JSONObject clientesLista = json.getJSONFromUrl(url);

        clientes(clientesLista);
    }

    public void clientes(JSONObject jsonCli) {

        try {

            JSONArray arrayPlanetas = jsonCli.getJSONArray("clientes");

            for (int i = 0; i < arrayPlanetas.length(); i++) {

                JSONObject cliente = arrayPlanetas.getJSONObject(i);

                Log.d("idClientesT", cliente.getString("idClientesT"));
                Log.d("tipo", cliente.getString("tipo"));
                Log.d("nome", cliente.getString("nome"));

            }

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

}

Esse código funciona normalmente.Porém, é preciso colocar o trecho de código abaixo;

if (android.os.Build.VERSION.SDK_INT > 9){
   StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
   StrictMode.setThreadPolicy(policy);
}

Senão, a conexão com a internet NÃO é estabelecida. 

No entanto, eu já adicionei a permissão de acesso à INTERNET no AndroidManifest.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="carcleo.com.radiosingular">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".login">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".principal" />
        <activity android:name=".form" />
        <activity android:name=".retrofit" />
    </application>

</manifest>

Mas não adianta.

Se eu retirar esse bloco de código

if (android.os.Build.VERSION.SDK_INT > 9){
   StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
   StrictMode.setThreadPolicy(policy);
}

A conexão com a INTERNET não acontece.

 

O problema é que quantas vezes eu precisar acessar à INTERNET será o mesmo número de vezes que terei que fazer uso desse trecho de código?

 

Será que não existe um arquivo de configuração geral para isso no AndroidStudio?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Eziel Santos
      Da noite para o dia meu android studio começou a dar esse erro, não mechi em nada, eu tenho o código fonte, msmo se eu extrair um novo projeto sem nem ter mechido ele da esse erro, antes não dava.
      Error:No signature of method: com.crashlytics.tools.gradle.CrashlyticsPlugin.findObfuscationTransformTask() is applicable for argument types: (java.lang.String) values: [Debug]
      Me ajudem pfv.

    • Por aristofanes
      Tenho um projeto que compila na versão compileSdkVersion 28, e coloquei a mínima para minSdkVersion 18, utilizo o celular para testar o app e funciona perfeito o meu é android 8.0 e estou tentando testar em um celular com android 4.3.
      Ele instala mas ao abrir diz: app parou, o que seria isso?
    • Por Vitor Pereira dos Santos
      Preciso que a imagem que está guardada no Storage firebase apareça na listview customizada, no entanto não consigo setar a imagem no formato gs://, ja tentei utilizar o Picasso e o Glide, mas ambos precisam da URL da imagem, ou seja: http://.. E Não consigo pegar essa url. 
       
      O código é esse: https://github.com/VitorSantos1996/LivrariaFireBase
       
      Se tiver como estar a imagem no formato gs://.. ficará mais fácil.
    • Por gregory freire
      Boa tarde,
       
      Desenvolvi um aplicativo e gostaria de saber se existe alguma forma de forçar a execução dele para que o mesmo não pare o processo quando estiver em segundo plano no Sistema Android, da forma que funciona hoje, após 5 minutos o aplicativo é fechado se estiver em segundo plano. Se fazendo necessário novo login. 
      Outra duvida seria, quando o aplicativo está em segundo plano, como fazer para informações enviadas para o aplicativo sobreporem a tela do aparelho. 
       
      att,
       
      Gregory Freire
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.