Android6.0以上での使用について
  各種デバイスコントロールにはパーミッションが必要であるため
  フルで機能を使うにはAndroid側の 設定>アプリ>Basic>権限 から
  [ストレージ、カメラ、マイク、位置情報] の必要な権限をオンに設定してご使用下さい。

  またアプリ側の設定で独自のアクセス禁止機能があります。(Android4.4以前用)
  セッティングで 'Device access lock.' をONにしてあると、
  カメラ、GPS、マイク、Load"http:" のアクセスは全面禁止されます。
  使用時はOFF設定にしておいて下さい。

  機種により拡張機能の動作は異る場合があります。

   EX_CAMERA


 [機能] 内蔵カメラで撮影します。

 [書式] EX_CAMERA n, ["ファイルネーム"]

 [説明]
  横画面モード用です。
   n=0 プレビューを終了します。
   n=1 プレビューを開始します。
   n=2 撮影して"ファイルネーム"の場所にに保存します。(対応形式 .png .jpg)
   n= 3ex_camera 3, on  オートフォーカスをONにします。
         ex_camera 3, off オートフォーカスをOFFにします。
  プレビューモードはstopキー又はbackキーで閉じることができます。
  *中華タブレットでは動作しない場合があります。
  Android6.0以上では事前にAndroidの 設定>アプリ>Basic>権限 から
  パーミッション:カメラ/オン に設定しておいて下さい。

 [例] [smp_camera.bas]
    10 ex_camera 1
    20 while touch(2)=0:pause 10:wend
    30 ex_camera 2,"test.png"
    40 ex_camera 0



  GPS


 [機能] GPS受信のオン/オフを切り替えます。

 [書式] GPS ON/OFF

 [説明]
  GPSデータ受信はあらかじめ設定からGPS受信をONにしておく必要がありますが
  こちらのコマンドからもON/OFFを切り替えることができます。(Android2.2以前)
  Android2.3以降の機種では自動切り替えができないためGPSの設定画面が呼び出されます。
  手動で切り替えてからBackボタンで戻ってください。(戻るまで次のコマンドへは進みません)
  機種や場所によってはネット接続も手動でONにしておく必要があります。

 [例]
    gps on
    print ex_gps(0)




  EX_GPS


 [機能] GPSの位置情報を取得します。

 [書式] EX_GPS(n)

 [説明]
   n=0 緯度を取得します。
   n=1 経度を取得します。
   n=2 高度を取得します。
   n=3 精度を取得します。
   n=4 GPSTimeを取得します。
   n=5 GPSSpeedを取得します。
   n=6 Bearingを取得します。
  設定でGPSチェック又はネット接続をONにしておく必要があります。
  場所によっては取得に時間がかかる場合があります。
  Android6.0以上では事前にAndroidの 設定>アプリ>Basic>権限 から
  パーミッション:GPS/オン に設定しておいて下さい。

 [例]
    print ex_gps(0)



  SENSOR


 [機能] センサー受信のオン/オフを切り替えます。

 [書式] SENSOR [ ON | OFF ]

 [説明]
  EX_SENSOR()関数で取得する前に SENSOR ON しておきます。
  使用が終わると SENSOR OFF します。
 [例]



  EX_SENSOR


 [機能] 傾きセンサーの情報を取得します。

 [書式] EX_SENSOR(n)

 [説明]
  各センサー値の取得にはご使用の機種にその機能が内蔵されている必要があります。

  傾きセンサー
   n=0 方位角を取得します。(0~360)
   n=1 傾斜角を取得します。
   n=2 回転角を取得します。
  加速度センサー
   n=3 加速度x軸を取得します。
   n=4 加速度y軸を取得します。
   n=5 加速度z軸を取得します。
  各種センサー
   n=6 近接センサー値(距離0~1)を取得します。
   n=7 温度センサー値を取得します。
   n=8 照度センサー値を取得します。
  ジャイロセンサー
   n=9  x軸角速度を取得します。
   n=10 y軸角速度を取得します。
   n=11 z軸角速度を取得します。
  地磁気センサー
   n=12 x軸磁気密度を取得します。
   n=13 y軸磁気密度を取得します。
   n=14 z軸磁気密度を取得します。
  圧力センサー
   n=15 圧力センサー値を取得します。

 [例] [smp_sensor.bas]
    10 sensor on
    20 for i=1 to 1000
    30 locate 0,0
    40 print ex_sensor(0)
    50 print ex_sensor(1)
    60 print ex_sensor(2)
    70 next
    80 sensor off



  EX_EXECUTOR


 [機能] ホーム画面に特定プログラムのショートカットを作り、実行可能にします。

 [書式] EX_EXECUTOR "ファイルネーム.bas",["表示名"]

 [説明]
  指定の[.bas]ファイルがホーム画面から実行できるようになります。
  存在するファイルでないとエラーになります。
  *Basicが退避状態にあってもショートカットからの実行が行われると初期化が行われます。

 [例]
    ex_executor "test.bas","TEST"




  EX_REC


 [機能] マイクからの音を録音保存します。

 [書式] EX_REC "ファイルネーム.3gp" , [ 秒数 | stop ]

 [説明]
  指定した秒数の長さだけ録音します。(省略時は5分)
  stop を指定すると録音状態を停止します。
  録音に使用できるファイル形式は .wav .mp3 .3gp です。
  Android6.0以上では事前にAndroidの 設定>アプリ>Basic>権限 から
  パーミッション:マイク/オン に設定しておいて下さい。

 [例]
    ex_rec "sound.3gp",60
    pause 10000
    ex_rec ,stop



  EX_MOVIE


 [機能] 動画を再生します。

 [書式] EX_MOVIE "ファイルネーム" [, start | pass | ctrl | stop ] [, 開始位置(秒)]

 [説明]
  指定した動画を再生します。
  対応フォーマットは .3gp .mp4 です。
  動画の開始位置を秒単位で指定できます。
  第二パラメータ
   start 再生を開始します。動画が終わるまで次の命令に移りません。表記省略できます。
   pass 再生を開始します。再生が始まるとすぐに次の命令へ移ります。
   ctrl   start と同じですが動画コントロールバーが表示されます。
   stop  動画の再生を停止します。
  再生が終了すると自動的に閉じます。
  動画モードはstopキー又はbackキーでも閉じることができます。

 [例]
    ex_movie "sky.mp4" , , 15



  EX_RECOGN$


 [機能] 音声認識で入力された文字列を返します。

 [書式] EX_RECOGN$(n)

 [説明]
  最初に s$=ex_recogn$(0) の記述で音声認識のダイアログが表示されるので
  スマートフォンに向かって入力する言葉を話しかけて下さい。
  入力が終わると文字変数に入力された文字列が入ります。
  数秒間何も音声入力がないとダイアログは閉じてヌルストリング""を返します。
  また認識された言葉の候補は複数あるので n の値を1,2...と変えることで
  次の候補の文字列を取得できます。(候補がこれ以上ない場合はヌルストリング""を返します)
  入力される言語の種類はAndroidの設定の’言語と入力’>’言語’で選んだものになります。
  この関数は次の要項の間で使用することができます。
  ・Googleの音声認識サービスが利用できる間、使用が規定内の間。
 [例]
     10 s$=ex_recogn$(0)
     20 print s$
     30 i=1
     40 while ex_recogn$(i)<>""
     50 print ex_recogn$(i):i=i+1
     60 wend



  EX_WEB


 [機能] 指定されたアドレスのWEBページにジャンプします。

 [書式] EX_WEB "webアドレス"

 [説明]
  Backボタンで元のBasic画面に戻ります。

 [例]
    ex_web "http://androidbasic.ninja-web.net/"



  EX_MAP


 [機能] Google Map で指定位置の地図を表示します。

 [書式] EX_MAP 緯度,経度 [,縮尺率] [,"検索地名"] [,オプションスイッチ]

 [説明]
  ネット接続状態にあることが必要です。
  緯度,経度はex_gpsで扱う数値と同じです。
  縮尺率の値: [拡大] 22 - 0 [広範囲]
  "検索地名"で場所を指定する事もできます。
  指定した場合は指定緯度,経度は無効になります。
  オプションスイッチ
  p 航空写真で表示します。
  地図表示では通常拡大縮小ボタン、現在位置ボタン(要GPS-on)が表示されます。
  マップ表示中はBasicは次の命令に進みません。
  Backボタンを押すことでBasic画面に戻ります。

  EX_MAPは暫定的に使用できる命令です。次の条件の中で使用できます。
  ・Google Mapのサービスが提供されている間。
  ・全体の呼び出し回数が規定内で制限がかかっていない期間。
  またGoogle Map API では使用キーごとに全体のMap呼び出し回数に制約があります。
  そのため各端末上のアプリ(Basic)でも呼び出せる回数が一日5回までの制限があります。
  制限がかかるとメッセージが表示され次の命令に進みます。

 [例]
     ex_map 35.3608,138.7275,8
     ex_map ,,,"東京タワー",p



  EX_MAP$


 [機能] Google Map の座標情報を取得します。

 [書式] EX_MAP$(d1[,d2])

 [説明]
  書式1: EX_MAP$(d1)
   d1=0 緯度を返します。
   d1=1 経度を返します。
   d1=2 縮尺率を返します。
   返し値は文字列なのでval関数で数値変換して下さい。
  書式2: EX_MAP$(d1,d2)
   d1に緯度、d2に経度を指定してその地域座標のロケーション情報(住所等)を取得します。
   ネット接続状態にあることが必要です。

 [例]
     10 latitude=35.3608
     20 longitude=138.7275
     30 print ex_map$(latitude,longitude)
     40 ex_map ,,,"東京タワー":print "東京タワー"
     50 print "緯度=";ex_map$(0)
     60 print "経度=";ex_map$(1)



  EX_VIBRATE


 [機能] 端末をバイブレーション(振動)させます。

 [書式] EX_VIBRATE [[繰り返し回数],[オン秒数],[オフ秒数],[休止秒数],[休止までのループ数]]

 [説明]
  ex_vibrate  の指定なしで0.8秒間の振動を1回だけします。
  ex_vibrate 0 で振動中の時は停止します。
  パラメータを与えることでパターンによる動作を指定することができます。
  パターンでは交互にオン、オフを繰り返します。
  その長さを[オン秒数],[オフ秒数]でミリ秒単位で指定できます。
  何回ループさせてから休止を入れるかを[休止までのループ数]で指定できます。
  休止の長さは[休止秒数]でミリ秒単位で指定できます。
  このオンオフ繰り返しと休止までのワンセットを何回繰り返すかを[繰り返し回数]で指定できます。
  全体の長さが1分を超えた時は1分までに抑制されます。
  各値を省略した時はデフォルト値が使用されます。
  この命令は振動中でもすぐに次の命令に移ります。

 [例]
    '0.7秒振動して0.4休むを3回繰り返して1秒休止を入れる、それを2回繰り返す。
    '._._._[_]._._._[_]
    ex_vibrate 2,700,400,1000,3



  EX_BRIGHT


 [機能] バックライトの輝度の制御。

 [書式] EX_BRIGHT n

 [説明]
  n は0~100の値。
  0でも完全なオフにはなりません。

 [例]
    ex_bright 50



  EX_INFO$


 [機能] 端末の各種情報を取得して返します。

 [書式] EX_INFO$(n)

 [説明]
  n=0
   バッテリー残量の値を取得します。(0~100)
   この関数は文字列を返すのでval関数で数値化する必要があります。
  n=1
   端末の2文字の国コード(アルファベット大文字)を返します。
  n=2
   Androidのバージョンを3桁の数字で返します。
   220 Froyo
   234 Gingerbread
   440 KitKat
   510 Lollipop 等。
  n=3
   ネットワークの接続状態を返します。
   0 接続なし
   1 接続あり
   返し値は文字列です。

 [例]
    bt=val(ex_info$(0))
    print ex_info$(1);bt
    JP 98
    OK
    if val(ex_info$(2))<400 then lowmode=1



  EX_TIME / EX_TIME$


 [機能] 時間を表すミリ秒単位の数値の操作、変換を行います。

 [書式] EX_TIME[$] ("data1","data2"[,data3])

 [説明]
  書式は3つあります。

  書式1: ex_time("yyyy/MM/dd","HH:mm:ss")
  日付と時刻の2つの値をミリ秒単位の数値(13桁)に変換したものを返します。
  例:
      10 t=ex_time("2016/10/25","12:15:00")
      20 ptint t
        1477365300593

  書式2: ex_time(ミリ秒単位の時刻数値,"取得する項目")
  ミリ秒単位の時刻数値から指定された各項目を返します。
  取得する項目は次のどれかを指定します。

  dateと timeの時は返し値は文字列なので ex_time$() の$付きで記述します。
  date:  年月日をの"yyyy/MM/dd"形式で返します。
  time:  時刻の時分秒を"HH:mm:ss"の形式で返します。

  year:  年(西暦)を返します。
  month: 月を返します。
  day:   日を返します。
  hour:  時を返します。
  min:   分を返します。
  sec:   秒を返します。
  例:
      10 t=1477365300593
      20 ptint ex_time$(t,"date")
      30 ptint ex_time(t,"year")
      40 ptint ex_time(t,"hour")
       2016/10/25
        2016
        12

  書式3: ex_time(ミリ秒単位の時刻数値,"変更する項目",変更する数値)
  ミリ秒単位の時刻数値の指定項目を指定の値に変更してミリ秒単位の数値で返します。
  指定項目
  "year"-年  "month"-月 "day"-日 "hour"-時 "min"-分 "sec"-秒
  例:
      10 t=1477365300593: :'初期の日時
      20 ptint ex_time$(t,"date"),ex_time$(t,"time")
      30 t2=ex_time(t,"yrar",2018) :'年を2018に変更
      40 ptint ex_time$(t2,"date")
      50 t3=ex_time(t,"min",45) :'分を45に変更
      60 ptint ex_time$(t3,"time")
       2016/10/25    12:15:00
       2018/10/25
       12:45:00