teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

変更

2017/11/18 07:12

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -30,7 +30,7 @@
30
30
  final int CONNECTION_TIMEOUT = 30 * 1000;
31
31
  final int READ_TIMEOUT = 30 * 1000;
32
32
 
33
- URL url = new URL("http://raspberrypi.local:8080/on");//url設定
33
+ URL url = new URL("http://XX.X.XX.XX:8080/on");//url設定
34
34
  HttpURLConnection conn = (HttpURLConnection) url.openConnection();
35
35
  //URL が参照するリモートオブジェクトへの接続を表す URLConnection オブジェクトを返します。
36
36
  conn.setConnectTimeout(CONNECTION_TIMEOUT);

2

変更

2017/11/18 07:12

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,99 @@
1
1
  [ここ](https://teratail.com/questions/100594)で教わったnode.jsを使ってラズパイに繋がっているLEDを光らせる方法を発展させて、androidstudioでボタンを押した時にバックグランドでURLを開いてLEDを光らせることはできますか?
2
2
 
3
- openStream ()という関数を見つけたのですがこれで開くことは可能でしょうか?
4
3
 
4
+ ###MainActivity.java
5
+ ```java
6
+ package com.example.xxx.http;
7
+
8
+ import android.os.AsyncTask;
9
+
10
+ import java.io.BufferedReader;
11
+ import java.io.IOException;
12
+ import java.io.InputStream;
13
+ import java.io.InputStreamReader;
14
+ import java.net.HttpURLConnection;
15
+ import java.net.URL;
16
+
17
+
18
+ public class HttpTask extends AsyncTask<Void,Void,Void> {
19
+ @Override
20
+ protected Void doInBackground(Void... params) {
21
+ try {
22
+ getGET();
23
+ } catch (IOException e) {
24
+ e.printStackTrace();
25
+ }
26
+ return null;
27
+ }
28
+
29
+ public String getGET() throws IOException {
30
+ final int CONNECTION_TIMEOUT = 30 * 1000;
31
+ final int READ_TIMEOUT = 30 * 1000;
32
+
33
+ URL url = new URL("http://raspberrypi.local:8080/on");//url設定
34
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
35
+ //URL が参照するリモートオブジェクトへの接続を表す URLConnection オブジェクトを返します。
36
+ conn.setConnectTimeout(CONNECTION_TIMEOUT);
37
+ // この URLConnection が参照するリソースへの通信リンクのオープン時に、指定されたミリ秒単位のタイムアウト値が使用されるように設定します。
38
+ conn.setReadTimeout(READ_TIMEOUT);
39
+ // 指定されたタイムアウトまでの読み取りタイムアウトをミリ秒単位で設定します
40
+ conn.setRequestMethod("GET");
41
+ conn.connect();// この URL が参照するリソースへの通信リンクを確立します
42
+ int statusCode = conn.getResponseCode();// HTTP 応答メッセージから状態コードを取得します
43
+
44
+ if(statusCode == HttpURLConnection.HTTP_OK){//上のコードがOKだった時
45
+ StringBuilder result = null;
46
+ //responseの読み込み
47
+ final InputStream in = conn.getInputStream();//この接続からの入力を受け取る入力ストリームを返します。
48
+ final String encoding = conn.getContentEncoding();// ヘッダフィールドの値を返します。
49
+ final InputStreamReader inReader = new InputStreamReader(in, encoding);
50
+ final BufferedReader bufferedReader = new BufferedReader(inReader);
51
+ String line = null;
52
+ while((line = bufferedReader.readLine()) != null) {
53
+ result.append(line);
54
+ }
55
+ bufferedReader.close();
56
+ //ストリームを閉じて、それに関連するすべてのシステムリソースを解放します。
57
+ inReader.close();
58
+ in.close();
59
+ return result.toString();//このシーケンスのデータを表現する文字列を返します。
60
+ }
61
+ return null;
62
+ }
63
+ }
64
+
65
+ ```
66
+ ###HttpTask.java
67
+ ```java
68
+ package com.example.xxx.http;
69
+
70
+ import android.os.Bundle;
71
+ import android.view.View;
72
+ import android.support.v7.app.AppCompatActivity;
73
+ import android.widget.Button;
74
+ import android.widget.EditText;
75
+
76
+ public class MainActivity extends AppCompatActivity {
77
+
78
+ Button buttonGet;
79
+
80
+ @Override
81
+ protected void onCreate(Bundle savedInstanceState) {
82
+ super.onCreate(savedInstanceState);
83
+ setContentView(R.layout.activity_main);
84
+
85
+ buttonGet = (Button) findViewById(R.id.buttonGet);
86
+ buttonGet.setOnClickListener(new View.OnClickListener() {
87
+ @Override
88
+ public void onClick(View v) {
89
+ HttpTask httpTask = new HttpTask();
90
+ httpTask.execute();
91
+ }
92
+ });
93
+
94
+ }
95
+ }
96
+ ```
97
+
5
- 似たよな記事知ってる方がいらしたら教えいただきたい
98
+ といコードて見ましたがボタンを押しも変化がありませんした。
99
+ 試しにandroidのブラウザでhttp://raspberrypi.local:8080/onを開こうとすると開けず、パソコン、iPhoneで開くとうまくいきました。何か違いがあるのでしょうか?

1

変更

2017/11/17 06:18

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,1 +1,5 @@
1
- [ここ](https://teratail.com/questions/100594)で教わったnode.jsを使ってラズパイに繋がっているLEDを光らせる方法を発展させて、androidstudioでボタンを押した時にバックグランドでURLを開いてLEDを光らせることはできますか?
1
+ [ここ](https://teratail.com/questions/100594)で教わったnode.jsを使ってラズパイに繋がっているLEDを光らせる方法を発展させて、androidstudioでボタンを押した時にバックグランドでURLを開いてLEDを光らせることはできますか?
2
+
3
+ openStream ()という関数を見つけたのですがこれで開くことは可能でしょうか?
4
+
5
+ 似たような記事を知っている方がいらしたら教えていただきたいです