2017-02-17 1 views
0

J'ai regardé beaucoup d'endroits, essayé une tonne de choses mais rien ne semble fonctionner pour moi d'une manière ou d'une autre. Quelqu'un peut-il m'aider s'il vous plaît ici. J'ai une url simple que je veux frapper sans ouvrir le navigateur dans les téléphones mobiles. Je clique sur un bouton et cette URL doit être touchée, sans que le navigateur ne soit ouvert. Je ne suis pas concerné par ce qui est sur cette page que je veux juste charger. J'ai fondamentalement besoin pour mon projet IOT arduino cum ethernet bouclier, dans lequel je contrôle mes appareils avec mon téléphone android.Frapper une URL sans ouvrir le navigateur dans Android Studio

Voici un extrait de ce que je fais. L'apk génère sans erreur mais l'URL n'est pas touchée.

Thankyou

public void led1on(View view){ 
     try { 
     URL u = new URL("http://172.17.27.173/?2"); 
     HttpURLConnection http = (HttpURLConnection) u.openConnection(); 
     http.connect(); 
    }catch (Exception e){ 
     e.getMessage(); 
     e.printStackTrace(); 
    } 
} 
+0

Avez-vous l'autorisation INTERNET dans le manifeste? Appelez-vous cette méthode dans un 'AyncTask' ou' Thread'? –

+0

** rien ne semble fonctionner ** - Que voulez-vous dire par là? Quelle est l'erreur/exception? –

+0

Oui, j'ai ajouté la permission INTERNET et je suis juste en appuyant sur un bouton, et ajouté onClick à cela et fait référence à cette fonction. J'espère que je l'applique correctement. –

Répondre

0

Utilisez cette méthode pour ouvrir url dans votre application avec

Vous pouvez appeler cette URL comme votre appel api, il appelle URL sans affichage. Ou faites une api (service web) et appuyez sur l'application et à la fin de l'api appelez votre URL.

+0

Ummm, pouvez-vous s'il vous plaît me rediriger vers un lien d'où je peux lire sur ce que vous avez dit, ou peut-être même écrire un peu de code pour le même afin que je puisse le comprendre correctement. Thankyou –

1

Vous pouvez l'appeler en tant que service Web et ne rien faire avec les résultats. Par exemple:

AsyncHttpClient client = new AsyncHttpClient(); 
client.get("http://172.17.27.173/yourpage", params, new AsyncHttpResponseHandler() { 
    @Override 
    public void onSuccess(String response) { // 200 OK 
     // Do nothing 
    } 
    @Override 
    public void onFailure(int statusCode, Throwable error, String content) { // Response not 200 
    { 
     // Some troubleshooting, etc. 
    } 
}); 

Pour voir comment utiliser le code ci-dessus, vous pouvez jeter un oeil à ici qui a expliqué comment utiliser le code pour Android: http://loopj.com/android-async-http/

Il est également possible de utiliser une autre bibliothèque, comme client Apache Http ainsi: https://hc.apache.org/

try { 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(url); 

     HttpResponse httpResponse = httpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     myContent = httpEntity.getContent(); 

    } catch ... 
+0

Je crois pour cela que je devrais ajouter des dépendances AsyncHttpClient. Ummm je n'ai pas enveloppé ma tête autour de studio android autant. Voulez-vous s'il vous plaît être prêt à m'aider ici dans la façon de le faire? –

+0

Merci, cela a résolu mon but. J'ai réalisé ce que je voulais dans cette question, merci à tous pour votre aide. –

+0

Pas de problème. J'ai ajouté plus d'explications sur la façon d'utiliser le code. – Mehdi

-1

Il peut se faire en suivant façon la plus simple.

switchON.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String webID = "Your url to turn ON device"; 
      Intent bIntent = new Intent(); 
      bIntent.setAction(Intent.ACTION_VIEW); 
      bIntent.addCategory(Intent.CATEGORY_BROWSABLE); 
      bIntent.setData(Uri.parse(webID)); 
      startActivity(bIntent); 
     } 
    }); 
+0

Pourquoi downvote? Ça marche. Je l'ai essayé. –