gaggitのブログ

コーディング、ガジェット、TIPS関連、FX

開発メモ(Socket通信)

 前々回、開発メモで書き残したSocket通信での試行、正確にはSSLSocketを使用しての通信ですが、コードをHttpURLConnectionから書き直してみました。結果は、FusionTables接続には至りませんでしたが、今までInputStreamがnullだったのが、レスポンスが返ってきました。変更前のコードは、AsyncTask+HttpURLConnectionでしたが、変更後のコードは、IntentService+SSLScoketの組み合わせです。AsyncTaskで出来なかったと言うわけではなく、単純に試していないだけです。もう少し試行したのち、本命のJavaScriptでの記述に変更してみたいと思います。

レスポンス結果は簡略して、「400 Bad Request」です。

あと、言語がenとなっているので、こちらもヘッダを追記して、対応しないといけないですね。。。

400. That's an error.

Your client has issued a malformed or illegal request.That's all we know.

 

参照サイト:

MSC00-J. セキュアなデータ交換には Socket クラスではなく SSLSocket クラスを使用する

Update Google Play services 解決

 SDK Toolsから最新版のパッケージをダウンロードし、build.gradleのdependenciesのバージョンを書き換えたけど、Androidのシミュレータに「Update Google Play services」のメッセージが表示されます。一通り見直してみたり、Clean build、Rebuild、Invalidate Cachesを実行して見ましたが、効果なし。そう言えば、最近、Javaを7から8に変更しました。Android Studioの画面には「Decompiled.class, bytecode version:51.0(Java 7)」と表示されています。なるほど、Java 7で再コンパイルしなさい、か。。。

Java 7に戻す気がありませんので、他のパッケージ類をJava 8に再コンパイルしなければならないようです。orz

解決方法は、以下です。

・「Tools」「Android」「SDK Manager」でAndroid SDKを立ち上げます。

・中央下の「Launch Standalone SDK Manager」をクリックし、Android SDK Managerを起動します。

・削除する前にスクリーンショットで、パッケージ、バージョンなどが分かるように保存しておきます。

Android Studioを終了しておきます。

Android SDK Managerに戻り、パッケージをすべて選択し、右下の「Delete xx packages...」をクリックします。(1つ消せないパッケージ(SDK build tool)あり)

・ポップアップで削除するパッケージの一覧が表示されるので、「Yes」をクリックします。

 (削除するパッケージが多すぎて、「Yes」が見えないので、ディスプレイを縦に変更)

・再度、インストールするパッケージを選択し、右下の「Install xx packages...」をクリックします。

・次画面で、「Accept License」にチェックを入れ、「Install」をクリックします。

*モジュールの削除は自己責任でお願いいたします。

開発メモと今後のヒント(HttpURLConnection)

自分用の開発メモです。やろうしていることは、FusionTables接続です。AsyncTaskの中でHttpURLConnection接続がうまくいきません。InputStreamがnullの為、エラーとなっています。ResponseCodeもnullの為、どんなエラーなのか不明ですが、おそらく400のバッドリクエストだと推定しています。また、クエリでaccess_token=tokenを記述するのは古いので、ヘッダ内でBearerでtokenを記述するように変更しています。(*1)ヘッダを記述することは出来ましたが、InputStreamでのエラーは変わらずです。

 

今後のヒント

・HttpURLConnectionを止めて、socketを使用してみる。

WindowsのブラウザでURLで記述(tokenなし)すると、FusionTablesには接続できているので、Java内でJavaScriptで記述してみる。

・もう一度、URLなどのスペルを見直してみる。

・AsyncTaskを使用した非同期のスレッドを止めて、ThreadまたはRunnableクラスのマルチスレッドクラスを使用してみる。

 

参照サイト:

*1

https://developers.google.com/fusiontables/docs/v2/migration_guide#oauth

 

p.s.

派遣ですが、次の仕事が決まりました。来週半ばから働きます。前の仕事より賃金は安いですが、前々の仕事より若干高いです。束縛時間(通勤時間+労働時間)は、前の仕事より長く、前々の仕事と同じくらいです。

横浜市臨時福祉給付金

横浜市健康福祉局から横浜市臨時福祉給付金の申請書が届きました。対象者は、昨年度、市民税が0円の方で、3,000円(1回のみ)給付されます。とりあえず、3,000円でもありがたいです。障がい者の方は、3万円です。申請するには、申請書と本人確認書類、口座の通帳またはカードのコピーが必要です。申請期間は来年の2/1までなので、対象者の方は、お早めに。

ちなみに横浜市では、対象の所得金額(控除後の金額)が35万以下(独身者の場合)は、住民税が0円となります。均等割りも0円です。詳細は、以下のリンクを参照してみてください。

www.city.yokohama.lg.jp

去年、かなり貧乏だったのね。。。

追記

今年も対象者確実でした。orz

SMARTalkの設定を見直す

SMARTalkのアプリでステータスが「着信可能」となっていても、また環境設定で「スリープモードにしない」かつ「Wi-Fi接続を維持する」していても、着信しない時があります。そこで、SMARTalkのMyPageのサイトに行き、設定を「留守番着信設定」から「着信転送設定」「無条件設定」に変更しました。この設定変更により、着信せずに留守番電話になることもなく、かつ着信転送により音声通話となるので、音声品質の改善にもなり、まさに一石二鳥。。。

あともう一つ、設定を変更しました。SMARTalkのアプリで「キーパッド」「設定」をタップ後、「SIPアカウント」をタップ。さらに電話番号横の矢印をタップすると、「詳細設定」があります。結構、分かりづらいところにありますね。(^^;

音声コーディックとして、「Wi-Fi用のコーディック」と「3G/LTE用のコーディック」でそれぞれ設定可能です。まず「Wi-Fi用のコーディック」でGSMをドラッグして有効なコーディックに変更し、有効なコーディックを「G.711 μ-Law」「GSM」とします。次にパケット送信間隔を20ms→10msに変更します。

同様にして、「3G/LTE用のコーディック」も「G.711 μ-Law」「GSM」とし、「iLBC」のコーディックをドラッグして無効なコーディックに移動させます。こちらの送信間隔はいじらない。これで、さらに音声品質が上がると思われます。

SMARTalkのサイトで、推奨の音声コーディックが「G.711 μ-Law」と「GSM」であり、「G.711 μ-Law」は世間一般的だからです。そもそも推奨の音声コーディックをデフォルト設定にしていないのもおかしな話です。

 

日本通信 おかわりSIM 5段階定額に変更

転職用に音声SIMが欲しかったので、昨日、ヨドバシカメラb-mobileのおかわりSIM5段階定額を3.220円(手数料代)で購入しましたが、「申込みコード」のみでSIMの現物は別途、b-mobileから宅急便で送付でした。こんなことならば、一昨日、直接b-mobileのサイトで直接、申し込んだ方が早かったです。と言っても、昨日、b-mobileのサイトから「申込みコード」を入力後、本日の午前中にはSIMが届きました。再度、b-mobileのサイトから開通設定をしようと思ったのですが、開通は翌日の11/11からでした。orzここで接続開始日を設ける意味はないと思うのですがね。ちなみに電話番号は、070から始まる番号です。

変更前まではデータSIM+旧fusion(現楽天コミュニケーションズ)のIP電話(SMARTalk)を使用しています。SMARTalkは電話を掛けなければ、基本料もないので0円で済みます。音声品質が悪いのは百も承知なのですが、着信せず(着信しない不在着信のメールあり)に留守番電話になってしまうことが多々あったので、今回、SIMを切り替えました。使用しているFone2LaserはSIMの2枚挿しが可能なので、今月末あたりまでは併用という形になります。

 下記は、変更前と変更後の料金比較です。データ容量、3GBで比較すると700円高くなる計算ですが、致し方ありません。外ではなるべくデータ通信を控えたいと思います。今後は、電話の発信時は圧倒的にIP電話が安いので、SMARTalkを使用、音声通話は着信のみ使用する形態となりそうです。

変更前のプラン

b-mobile 高速定額 1,180円(税別)

データ容量:3GB

通話:8円(税別)/30秒(SMARTalk)

変更後のプラン

データ容量:1GB毎に1,300円、1,550円、1,800円、2,050円、2,300円(税別)

通話:20円(税別)/30秒

11/12追記

b-mobile電話のアプリを使用すると、通話:10円(税別)/30秒

 

ファームウェアをアップデート後、SIM2側でも4G接続しました。

8/20にSIM2側で4G接続できないという記事を書きましたが、本日、ファームウェア更新し、SIM2側の接続を確認したところ、問題なく、接続できました。

念のため、機種はASUSのFone2Laser(2台目)で、SIMは日本通信のデータ専用SIMです。

 カーネルバージョン:3.10.49-perf-g8008274-00003-gcf240b3

                            android@mcrd1-36 #1

                            Thu Sep 29 11:47:50 CST 2016

ビルド番号:MMB29P.JP_Phone-13.10.11.5-20160929

                060020705_201602050034

gaggit.hatenablog.com