先に解答を示しますと、誤っているのは(3)のメソッド名になります。正しくは、「HttpURLConnection#setMethod」ではなく、「HttpURLConnection#setRequestMethod」となります。
ここで、java.netを用いたHTTP通信の手順を示します。以下のフローをしっかりと理解しておきましょう。
Bluetoothを扱う上で必要となる「android.bluetooth.BluetoothAdapter」クラスのインスタンスの取得方法についてです。このような端末からのサービスを提供するインスタンスの多くは、「Context#getSystemService」を用います。しかし、BluetoothAdapterに関しては、「BluetoothAdapter.getDefaultAdapter」メソッドを用いて取得できます。staticメソッドである点も注意してください。よって(1)が正解になります。
なお、Bluetoothに関しては他に、uses permissionとコードそのものが出題される傾向にあります。前者は知識問題なので覚えれば十分ですが、後者は実際にコードを書いたことがないと非常に難解です。機会があれば、一度実際にコーディングしてみましょう。
Wi-Fi機能を利用する上で、重要な手順やメソッドを以下に整理します。
まず、Wi-Fiを扱うには「android.net.wifi.WiFiManager」のインスタンスが必要になります。これは、「Context#getSystemService」の引数に“WIFI_SERVICE”を指定することにより取得できます。
次に、WiFiManagerクラスの持つメソッドですが、以下の表1を確認してください。
メソッド名 | 内容 |
---|---|
startScan | アクセスポイントをスキャン |
getWifiState | Wi-Fiの状態を取得 |
setWifiEnable | Wi-FiのON/OFFの設定。引数に“true”でON、“false”でOFF |
getScanResult | startScanの結果を取得 |
表1 WiFiManagerクラスのメソッド |
上記より、(4)の選択肢「setEnable」が誤りとなり、ここでの正解となります。
なお、startScanの完了時には「WiFiManager.SCAN_RESULTS_AVAILABLE_ACTION」のactionを持つIntentがブロードキャストされます。そのため、スキャン完了を検知する方法としては、このactionを補足する「BroadcastReceiver」を用意すればよいことになります。
以上で通信の項目は終了です。通信により外部連携ができるようになれば、アプリケーションの幅は無限に広がります。
なお、Android技術スキル標準「ATSS(Android Technical Skill Standard)」の単元は、今回の通信以降、「外部機器とセンサー」「マルチメディア」「テスト」「ネイティブ」と続いていきます。正直に申しますと、これらの単元は実際にコードを書いていないと非常に点数を取るのが難しい内容ばかりです。また、総じて、重要度も“低め”に設定されています。
「ACE(OESF Authorized Certification Engineer for Android)」の試験は、難しい問題も簡単な問題も同じ配点になります。そのため、上記に挙げた単元は、初めのうちは深入りせず、優先度を下げて学習するのが賢明であると筆者は考えます。知識問題を中心に取り上げる本連載でも、このあたりの内容は適宜割愛する予定でいます。その点、ご了承ください。
さて、次回は「外部機器とセンサー」について学んでいきます。お楽しみに! (次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.