24178


ブロードキャストレシーバでインテントアクションのBOOT_COMPLETEDを受け取り、サービスを開始して、アプリのバックグランドでサーバとの通信を行いデータをダウンロードする、という処理を現在実装しています。

元々のアプリがアクティビティの中でやっていたデータのダウンロードをバックグランドで行いたいのですが、アクティビティの中で通信はうまくいくのですが、サービス内で通信をしようとすると

[code]

    HTTPHOSTConectExcepton: Connection to http:// XXX.XXX.XXX.XXX refused
    
[/code]

と表示されてうまくいきません。

Activityの中での通信はうまくいっているのに、サービス内だとうまくいかない理由がわかりません。

サービスはバインドせず、アクティビティと同一プロセス内別スレッドで処理をしています。  
通信に必要なパラメータを渡す前にRefuseされるようで原因を探しています。

環境は  
jdk1.8.0＿77  
sdk compile version 23  
target sdk version 23  
Android Studio 1.5.1  
Genymotion

Genymotionのエミュレータで開発しています。


CC BY-SA 3.0
2016-04-20T06:04:20.543
24176
2016-04-20T07:55:14.190
2016-04-20T07:02:38.953
5519
15223
question
android genymotion
AndroidでサービスでHTTP通信がRefuseされます


自己解決しました。

英語のStack Overflowをあさっていたら

<https://stackoverflow.com/questions/11514038/httphostconnectexception-
connection-refused-android>

の質問に行きつきました。

Metallica氏の回答にある、

AndroidManifest.xmlのpermission.INTERNETをコメントアウトする。

アプリを実行して、通信する

エラーを吐くのを確認。

コメントアウトを外して、実行（この時、adbコマンドではなくgenymotionのエミュレータを立ち上げなおす）。

で正常に動きました。

3日間ハマっていたこの問題はItellij14らへんのバグだそうです。


CC BY-SA 3.0
2016-04-20T07:55:14.190
24178
2016-04-20T07:55:14.190
2017-05-23T12:38:55.250
-1
15223
24176
answer