Conexão com a INTERNET no Android Studio
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**?Discussão (1)
Carregando comentários...