連載
» 2012年01月05日 10時57分 公開

Android技術者認定試験「ACE」ドリル(8):アプリの幅が無限に広がる、Androidの通信 (2/2)

[奥 崇(elan),@IT MONOist]
前のページへ 1|2       

解答

演習1:答え(3)

 先に解答を示しますと、誤っているのは(3)のメソッド名になります。正しくは、「HttpURLConnection#setMethod」ではなく、「HttpURLConnection#setRequestMethod」となります。

 ここで、java.netを用いたHTTP通信の手順を示します。以下のフローをしっかりと理解しておきましょう。

  1. コンストラクタの引数に接続先URLを指定して、「java.net.URL」をnewする
  2. 1.で取得したインスタンスを用いて「URL#openConnection」で「HttpURLConnection」のインスタンスを取得する
  3. 2.で取得したインスタンスを用いて「HttpURLConnection#setRequestMethod」を呼び出す。引数にはHTTPのメソッドを指定する。通常“GET”もしくは“POST”を設定することが多い
  4. 「HttpURLConnection#connect」で実際に接続し、結果を取得する。結果は「HttpURLConnection#getInputStream」で取得可能

演習2:答え(1)

 Bluetoothを扱う上で必要となる「android.bluetooth.BluetoothAdapter」クラスのインスタンスの取得方法についてです。このような端末からのサービスを提供するインスタンスの多くは、「Context#getSystemService」を用います。しかし、BluetoothAdapterに関しては、「BluetoothAdapter.getDefaultAdapter」メソッドを用いて取得できます。staticメソッドである点も注意してください。よって(1)が正解になります。

 なお、Bluetoothに関しては他に、uses permissionとコードそのものが出題される傾向にあります。前者は知識問題なので覚えれば十分ですが、後者は実際にコードを書いたことがないと非常に難解です。機会があれば、一度実際にコーディングしてみましょう。

演習3:答え(4)

 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技術スキル標準「ATSSAndroid Technical Skill Standard)」の単元は、今回の通信以降、「外部機器とセンサー」「マルチメディア」「テスト」「ネイティブ」と続いていきます。正直に申しますと、これらの単元は実際にコードを書いていないと非常に点数を取るのが難しい内容ばかりです。また、総じて、重要度も“低め”に設定されています。

 「ACE(OESF Authorized Certification Engineer for Android)」の試験は、難しい問題も簡単な問題も同じ配点になります。そのため、上記に挙げた単元は、初めのうちは深入りせず、優先度を下げて学習するのが賢明であると筆者は考えます。知識問題を中心に取り上げる本連載でも、このあたりの内容は適宜割愛する予定でいます。その点、ご了承ください。

 さて、次回は「外部機器とセンサー」について学んでいきます。お楽しみに! (次回に続く)

ACEアプリベーシック試験対応イーラーニング(サンプルIDプレゼント中)


Androidコーナー

Androidコーナー
「Android(アンドロイド)」の組み込み機器への適用からアプリ開発、レポート、ニュースなどさまざまな技術情報・最新動向をお届けする!!

>>コーナーTOPはこちらから


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.