Jump to content
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?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By ELT_Yuken
      Bom, eu estou aprendendo js pelo celular da minha mãe, eu gostaria de saber como faço para criar botões que repetem uma função até eu tirar o dedo dele
    • By JuanAlmeida
      Eaí, eu vim pedir ajuda aqui porque não encontro em nenhum lugar nada para me ajudar. Eu consigo desenvolver no Android Studio tranquilamente, so que o emulator não abre de jeito nenhum, no caso abre. Mas a tela fica preta; Igual a foto. Minha config é Q6600 + 8GB RAM + GT 610 2GB, embora não seja moderna, ela seria o suficiente pra rodar o emulator. Alguem pode me dizer o que é?

    • By T635
      Estou desenvolvendo um app para medir os batimentos do usuário por meio de um sensor em seu smartwatch. Entretanto estou com um bug na linha 36, e não faço a mínima ideia de como resolver.
      O link do código é esse:
      https://pastebin.com/gwEzhCdh
    • By joaohouto
      Olá, pessoal!
       
      Estou dando início a minha caminhada no desenvolvimento nativo para Android, e durante esse percurso encontrei certa dificuldade ao tentar exibir uma notificação simples.
      Segue o código:
       
      //imports public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); gerarNotificacao(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } public void gerarNotificacao(){ NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setSmallIcon( R.drawable.ic_launcher ) .setTicker( "Título ticker de teste" ) .setContentTitle( "Título de teste" ) .setContentText( "Texto de corpo - teste" ) .setAutoCancel( true ); int id = 1; NotificationManager notifyManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); notifyManager.notify( id, builder.build() ); } }  
      Obs.: Esse é um código exemplo que achei em um site aleatório da internet
      Bom, ao iniciar a tela principal a notificação não é exibida, por quê?
       
      Agradeço a quem puder ajudar. :D
    • By ELT_Yuken
      Estou começando agora, não tenho Pc, prático pelo anwriter, e droidscript (disponível na playstore)
      Estou tentando desenvolver um game, poderia, alguém por favor me ensinar a criar controles(botoes que quando eu clico enviam functions)?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.