パート3: デバイス機能との統合
Oracle ADF Mobileでは、すでにご存じの機能に加えて、デバイスに組み込まれている機能を統合できます。 たとえば、デバイスのカメラ、連絡先、電子メール、SMS、GPSなどとの統合が可能です。 チュートリアルのこの項では、カメラや電子メール・クライアントとやり取りする方法について説明します。

ステップ1: カメラとのやり取りの追加

この項では、デバイスのカメラと統合したり、TakePictureページに移動したりするためのボタンをEmpListページに追加します。 TakePictureページでは、別の写真を撮るためのボタンと、EmpListページに戻るためのボタンを追加します。 また、撮ったばかりの写真を表示するイメージも追加します。

  1. EmpTaskFlow.xml」を開きます。 (ヒント:アプリケーション・ナビゲータで「EmpsTaskFlow.xml」をダブルクリックします。)

    alt text
  2. EmpList」をダブルクリックして、エディタで開きます。

    alt text
  3. コンポーネント・パレットから「Button」コンポーネントをStructureペイン内のPanel Itemにドラッグします。

    alt text

    alt text
  4. ボタンのTextTake a Pictureに、ActiontakePictureに設定します。

    alt text

    alt text
  5. ここからは、TakePictureページで作業します。 エディタで「TakePicture」ページを開きます。 (ヒント:EmpsTaskFlowまたはアプリケーション・ナビゲータのどちらかで「TakePicture.amx」をダブルクリックします。)

    alt text
  6. headerファセットの下にあるoutputTextコンポーネントを探し、その値をTake a Pictureに設定します。

    alt text
  7. Data Controls」パレットを展開して、Device Featuresを表示します。

    alt text
  8. getPicture(int,int,int,boolean,int,int,int)」を展開します。 getPictureメソッドに必要なパラメータに注意してください。 getPictureメソッドでは、コール元は、デバイスのさまざまな側面を制御するメソッドのパラメータを設定できます。 たとえば、メソッド・コールでは、結果の品質、高さ、および幅を設定できます。

    alt text
  9. getPicture(int,int,int,boolean,int,int,int)」をStructureペイン内のPanel Pageにドラッグし、ADF Mobile Buttonとしてドロップします。

    alt text

    alt text
  10. Edit Action Bindingダイアログ・ボックスで、パラメータの次の値を入力し、「OK」をクリックしてボタンを作成します。

    Name Value
    quality 50
    destinationType 1
    sourceType 1
    allowEdit true
    encodingType 1
    targetWidth 200
    targetHeight 200
    alt text
  11. ページとコードは次のようになります。

    alt text

    次の手順では、getPictureメソッドの戻り値にバインドされた出力テキスト・コンポーネントを追加します。 確かに、カメラからの戻り値は、テキストではなく写真です。 出力テキスト・コンポーネントを追加するのは、メソッドの戻り値へのバインディングを作成することが目的です。 出力テキスト・コンポーネントを追加した後、イメージ・コンポーネントを追加し、そのバインディングをイメージ・コンポーネントのソースになるようにコピーします。 バインディングをコピーした後、テキスト・フィールドを削除します。

  12. Data Controlsパレットで、getPictureメソッドからの「String」戻り値をStructureペイン内のPanel Pageにドラッグし、ADF Mobile Output Textとしてドロップします。

    alt text
  13. ADF Mobile AMX General Controlsで、コンポーネント・パレットから「Image」コンポーネントをStructureペイン内のPanel Pageにドラッグします。

    alt text
  14. コード・エディタで、[Ctrl]+[C]を使用して、outputTextコンポーネントからバインディング・コードをコピーします。

    alt text
  15. イメージ・コンポーネントを選択し、プロパティ・インスペクタで、バインディング・コードをSourceプロパティに貼り付けます([Ctrl]+[V]を使用します)。

    alt text
  16. コード・エディタまたはStructureペインのどちらかで「outputTextフィールド」を選択し、削除します。

    alt text
  17. Panel PageのFacet - primaryノードで「Button」コンポーネントを選択します。

    alt text
  18. プロパティ・インスペクタを使用して、TextBackに、Action__backに設定します。

    alt text
  19. 前に行ったのと同様に、アプリケーションをデプロイします。 (ヒント:JDeveloperのApplicationメニューから、「Deploy」→「Android2 to Android emulator」を選択します。)
    また、エミュレータがすでに起動し実行されていることも確認します。

    alt text
  20. メイン・ページの「Applications」ボタンをクリックし、「Employees」アプリケーションをクリックします。

    alt text
  21. アプリケーションが開いたら、「Take a Picture」をクリックします。 これにより、エミュレータ上でカメラ機能が開きます。

    alt text
  22. カメラ・エミュレータには、市松模様の背景の上を動き回る緑のボックスがあります。 シャッター・ボタン(フッターの中央にある青い円)をクリックして写真を撮ります。
    カメラが動作を停止したというメッセージが表示されたら、AVDの設定をチェックして、背面カメラがエミュレートされていることを確認します。

    alt text
  23. フッターの右側にあるチェックマークをクリックして、画像を受け入れます。

  24. デバイス・カメラが閉じ、アプリケーションに戻ります。 その後、アプリケーションにより、TakePictureページに追加したイメージ・コンポーネントに写真が表示されます。

    alt text

    これで、Oracle ADF Mobileを使用した、標準のデバイス機能とのやり取りが正常に完了しました。 次の項では、デバイスの電子メール機能とやり取りするJavaプログラムを追加します。

ステップ2: 電子メールを送信するJavaコードの追加

この項では、プログラムで電子メールを送信するJavaコードを追加することによって、アプリケーションを拡張します。 デバイス・データ・コントロールをページにドラッグするのではなく、Javaコードからデバイス機能にアクセスします。

  1. JDeveloperのエディタで「TakePicture」ページを開きます。

    alt text
  2. コンポーネント・パレットから「Button」をPanelPageにドラッグします。 このボタンを使用して、電子メールを送信するメソッドをコールします。

    alt text
  3. TextプロパティをSend Emailに設定します。

    alt text
  4. Data ControlsパレットからDevice Featuresデータ・コントロールを使用するのではなく、JavaBeanを作成して、デバイス機能をコールします。 JavaBeanとメソッドを作成するには、Action Listenerプロパティの右にある下矢印をクリックし、「Edit」を選択します。

    alt text
  5. Edit Property: Action Listenerダイアログ・ボックスで、Managed Beanリストの隣にある「New」ボタンをクリックします。

    alt text
  6. Create Managed Beanダイアログ・ボックスで、次のプロパティ値を設定し、「OK」をクリックします。

    Name Value
    Bean Name: backingPic
    Class Name BackingPic
    Scope view
    alt text
  7. Methodリストの隣にある「New」ボタンをクリックして、新しいメソッドを作成します。

    alt text
  8. Method NamesendEmailと入力し、「OK」をクリックします。

    alt text
  9. OK」をクリックして、Javaクラスとメソッドを作成します。

    alt text
  10. アプリケーション・ナビゲータで「BackingPic.java」をダブルクリックして、エディタで開きます。 (ヒント:「Application Sources」→「mycomp.mobile」を展開します。)

    alt text
  11. sendMail(ActionEvent actionEvent)メソッドを見つけ、そのメソッドの内部にDeviceManagerFactoryというコードを入力します。 JDeveloperから、DeviceManagerFactoryに対して推奨されるインポートが示されます。 [Alt]+[Enter]を押して、oracle.adf.model.datacontrols.device.DeviceManagerFactoryのインポート文を追加します。

    alt text
  12. DeviceManagerFactoryの最後にピリオド(.)を入力すると、JDeveloperから、このクラスの使用可能なメソッドのリストが提案されます。 「getDeviceManager()」をクリックし、[Enter]キーを押して、メソッド・コールをコードに追加します。

    alt text

    alt text
  13. getDeviceManager()」メソッドをクリックし、[Ctrl]+[Alt]+[V]を押して、Introduce Variableダイアログ・ボックスを開きます。 このダイアログ・ボックスでは、このメソッドに追加する変数と型が提案されます。 「OK」をクリックして、デフォルト値のままにします。

    alt text

    alt text
  14. deviceManager宣言のすぐ下にある新しい行に、deviceManager.sと入力します。 JDeveloperから、使用可能なメソッドのリストが提案されます。 「sendMail(String,String,String,String,String,String,String)」を選択して、メソッド・コールをコードに追加します。

    alt text

    alt text
  15. sendMailメソッドの下のData Controlsパレットに表示されるパラメータの名前に注意してください。 このパラメータのリストをガイドとして使用して、このメソッド・コールでの値を次のように設定します。

    引数
    arg 0 (To) "Jeff @oracle.com"
    arg 1 (cc) ""
    arg 2 (subject) "An Email"
    arg 3 ((body) "Hello from me."
    arg 4 (bcc) ""
    arg 5 (attachments) ""
    arg 6 (mimeTypes) ""
    alt text
  16. 作業内容を保存します。

  17. 前に行ったのと同様に、アプリケーションをエミュレータにデプロイします。 (ヒント:「Application」→「Deploy」を選択します。)

    alt text
  18. デプロイメントが完了したら、エミュレータの「Applications」ボタンをクリックし、「Employees」アプリケーションをクリックします。

    alt text
  19. Take a Picture」ボタンをクリックします。

    alt text
  20. カメラ機能で、シャッター・ボタンをクリックし、チェックマーク・アイコンをクリックして写真を受け入れます。

    alt text
  21. 次のページ(TakePictureページ)で、「Send Email」をクリックします。

    alt text
  22. エミュレータは、デフォルトでは電子メール・アプリケーションが構成されていないため、電子メールを送信しようとするとエラー・メッセージを返します。 このアプリケーションをデバイスにデプロイすると、アプリケーションはインストールされたクライアントを使用します。 複数のクライアントがインストールされている場合は、アプリケーションから、電子メール・クライアントを選択するよう求められます。

    alt text

このチュートリアルでは、Oracle ADF Mobileアプリケーションを作成して、モバイル・デバイスまたはエミュレータにデプロイしました。 このアプリケーションには、基本的なフォーム、Webサービスのコール、およびカメラや電子メール・クライアントなどのデバイス機能とのやり取りが含まれています。


ブックマーク 印刷 すべて表示 | すべて非表示
トップへ戻る
Copyright © 2011, Oracle and/or its affiliates. All rights reserved.