Biz/Browser AI独自機能

Q
Biz/Browser AIから他のアプリケーションを起動したい(Android) 

A
Biz/Browser AIから他のアプリケーション(以下、アプリ)を起動するには、Android OSのインテント機能を利用します。
(参考)
他のアプリケーションと連携する(Android)

サンプルでは、リストより選択した顧客データを元に、メールアプリと連携して顧客のアドレスにメール送信、 及び地図アプリと連携して顧客の住所を地図で表示します。

Intentクラスを使用して、メールアプリや地図アプリと連携します。
本サンプルでは、インテントに以下の形式を使用します。

<メール送信ができるアプリを起動する>
  意味
action Intent.ACTION_SENDTO dataの値を元にデータ送信を行う
data mailto:(メールアドレス) 値がメールの宛先であることを示す

<地図表示ができるアプリを起動する>
  意味
action Intent.ACTION_VIEW dataの値を元にデータを閲覧する
data geo:0,0?q=(住所) 値が住所であることを示す

また、このサンプルではメール送信アプリの起動をするインテントへ、アクションとデータの他に「エクストラ情報(extra)」を付加しています。
エクストラ情報とは、起動先のアプリに渡すことができる追加情報です。
URLに付加するパラメータと似た仕組みで、キーと値の組み合わせで複数設定できます。

ここでは、メールの件名と本文をエクストラ情報に設定しています。
キー
android.intent.extra.SUBJECT 件名
android.intent.extra.TEXT メール本文

アプリによって受け取れるエクストラ情報の形式は決まっているので、起動したいアプリの仕様を確認して下さい。

[サンプルコード]
FlexView FlexView1 {
  …
  FlexRecord FlexRecord1{
  FlexLabel FlexLabel1{
    Title = "名前";
    …
  }
  FlexLabel FlexLabel2{
    Title = "メールアドレス";
    …
  }
  FlexLabel FlexLabel3{
    Title = "住所";
    …
  }
  FlexButton FlexButton1{
    Value = "選択";
    …
    Function OnPushed( e ) {
      var row = Form3.FlexView1.GetRow(e.row);
      ^.^.^.Label1 = row.Flexlabel1.Value;;
      ^.^.^.Label2 = row.Flexlabel2.Value;
      ^.^.^.Label3 = row.Flexlabel3.Value;
      }
    }
  }
}
Label Label1 {
  …
}
Label Label2 {
  …
}
Label Label3 {
  …
}  
Button Button1 {
  …
  Title = "メールを作成する";  
  
  Function onTouch(e){
    try {
      /*インテントを作成します*/
      var i = new Intent("android.intent.action.SENDTO",
        "mailto:" + ^.Label2);
      
      /*インテントへExtra情報を格納します*/
      i.putExtra(Intent.TYPE_STRING, "android.intent.extra.SUBJECT",
       ^.Label1 + "様へ【sample】");
      i.putExtra(Intent.TYPE_STRING, "android.intent.extra.TEXT",
       ^.Label1 + "様\nサンプルメールです。\nサンプルメールです。");
       
      /*アプリケーション選択画面を表示します*/
      i.createChooser("メーラーを選択してください").startActivity();
      
    } catch(e) {
      //.MessageBox(e.message);
    }
  }
}

Button Button2 {
  …
  Title = "地図で見る";
  
  Function onTouch(e){
    try {
      var i2 = new Intent("android.intent.action.VIEW",
                     "geo:0,0?q=" + ^.Label3);
      i2.createChooser("アプリケーションを選択してください")
                      .startActivity();
    } catch(e) {
      //.MessageBox(e.message);
    }
  }
}

CRSファイル形式のサンプル
  「顧客一覧から外部アプリケーションを起動するサンプル(IntAi_002.zip)
で実際の動作をご確認いただけます。

管理番号:IntAi_002
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser HT・Biz/Browser SmartDevice・Biz/Browser AI TIPS集 トップへ