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

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

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

iOSのシミュレータは、カメラが含まれていないので、チュートリアルのこのステップは、Androidのエミュレータにデプロイする必要があります。このチュートリアルのステップでは、iOSのシミュレータでテストすることができませんが、Mac環境で動作はします。Androidのエミュレータをインストールしたい場合、Android環境の設定および構成のチュートリアルに従ってください。

2番目のステップ(Email送信のためのJavaコード追加)はiOSのシミュレータ、あるいはAndroidのエミュレータのどちらでも動作します。

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

    alt text

     

  2. タスク・フロー上に新しいViewコンポーネントをドラッグし、それをtakePictureという名称にします。そして、empListからtakePictureビューにControl Flowケースを追加します。それをtakePixという名称にします。
    作業内容を保存します。

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

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

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

    alt text

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

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

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

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

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

    alt text

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

    Name Value
    quality 50
    destinationType 1
    sourceType 1
    allowEdit true
    encodingType 1
    targetWidth 200
    targetHeight 200
    alt text

     

  12. ポップアップ・ペインを使用すると、メソッドは、デバイスへのアクセスを許可するように求められます。Grant Camera Access to this Applicationが選択されていることを確認し、OKをクリックします。

    alt text

  13. ページとコードは次のようになります。

    alt text

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

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

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

    alt text
  16. Structure Windowで、Output Textコンポーネントを選択し、そしてProperties Windowsで、Valueプロパティからバインディング・コードをコピーします。

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

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

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

    alt text

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

    alt text
  20. 作業内容を保存します。
    前に行ったのと同様に、アプリケーションをデプロイします。 (ヒント:JDeveloperのApplicationメニューから、「Deploy」→「Android2 to Android emulator」を選択します。)
    それが動作していることを確認するには、Androidエミュレータにこれをデプロイする必要がありますので、iOSシミュレータではカメラが含まれていないことを思い出してください。
    また、エミュレータがすでに起動し実行されていることも確認します。

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

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

    alt text
  23. カメラ・エミュレータには、市松模様の背景の上を動き回る緑のボックスがあります。 シャッター・ボタン(フッターの中央にある青い円)をクリックして写真を撮ります。

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

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

    alt text

    これで、MAFを使用した、標準のデバイス機能とのやり取りが正常に完了しました。 次の項では、デバイスの電子メール機能とやり取りする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パレットに表示されるパラメータの名前に注意してください。 このパラメータのリストをガイドとして使用して、このメソッド・コールでの値を次のように設定します。

    引数
    to "Jeff @oracle.com"
    cc ""
    subject "An Email"
    body "Hello from me."
    bcc ""
    attachments ""
    mimeTypes ""
    alt text
  16. 作業内容を保存します。
    カメラと同じように、デバイスの電子メールへのアプリケーションのアクセスを許可する必要があります。コード内の電子メール機能を追加したので、手動でこの変更を行う必要があります。maf-application.xml(Application Resourcesウィンドウ: デスクリプタ - ADF META-INF)に戻ってナビゲートし、Device Accessタブで、E-mailsチェック・ボックスを選択します。

    alt text
  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. Androidエミュレータで電子メールを使用するための構成がなされていない場合、コードで指定された値が呼び出され、取り込まれます。送信するためにヘッダ上のボタン(folded airplane)をクリックします。

    alt text

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


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