センサーコンポーネント

目次

加速度センサー

SIユニット(m / s 2 )を使用して約3次元で揺れを検出し、加速度を測定することができる不可視成分。 コンポーネントは以下のとおりです。

  • xAccel :電話機が平らな面に置かれている場合は0、電話機が右に傾けられている場合(つまり左側が上がっている場合)は正、電話機が左に傾けられている場合(つまり右のサイズが調達)。
  • yAccel :電話機が平らな面に置かれている場合は0、底部が上がっている場合は正、上部が上がっている場合は負です。
  • zAccel :-9.8(ディスプレイが上を向いた状態でデバイスが地面と平行に静止しているときの毎秒メートル毎秒の地球の重力、地面に対して垂直なときは0、下を向いているときは+9.8)。重力の有無にかかわらずそれを加速することによって影響を受けます。

プロパティ

AvailableEnabledLegacyMode (デザイナーのみ)このプロパティを追加したリリースの前は、AccelerometerSensorコンポーネントはAndroidシステムから受信したとおりにセンサー値を直接渡していました。ただし、これらの値はデフォルトで横モードに設定されているタブレットを補正するものではないため、MIT App Inventorプログラマが補正する必要があります。 ただし、補正すると、電話などのポートレートモードのデバイスでは正しくない結果になります。 横モードのタブレットを検出して補正を行います。 しかし、あなたのプロジェクトが既にその変更を補っているのであれば、今度は間違った結果を得るでしょう。 私たちの推奨する解決策はあなたがあなたのプロジェクトを更新することですが、あなたはまた単にこのプロパティを“ true”に設定することもできますそして私たちの補償コードは無効にされます。 注:将来のリリースでこのプロパティが削除される可能性があるため、プロジェクトを更新することをお勧めします。MinimumInterval電話の揺れの間隔(ミリ秒単位)Sensitivity加速度センサーの感度を表す数値です。 選択肢は、1 =弱い、2 =中程度、3 =強いです。XAccelYAccelZAccel

イベント

AccelerationChanged(number xAccel, number yAccel, number zAccel)加速度がX、Y、Z方向に変化したことを示します。Shaking()デバイスが揺れ始めたか、揺れ続けていることを示します。

方法

無し

バーコードスキャナー

バーコードスキャナを使用してバーコードを読み取るためのコンポーネント

プロパティ

Result前回のスキャンのテキスト結果。UseExternalScanner真の場合、App Inventorは「Bar Code Scanner」などの外部スキャンプログラムを探して使用します。

イベント

AfterScan(text result)スキャナーが(テキスト)結果を読み取り、その結果を提供したことを示します

方法

DoScan()カメラを使ってバーコードスキャンを開始します。 スキャンが完了すると、AfterScanイベントが発生します。

タイマー

電話機の内部時計を使用して時刻を表示する不可視コンポーネント。 定期的に設定された間隔でタイマーを起動し、時間の計算、操作、および変換を実行できます。

DatePickerTimePickerなどからの日付と時刻に対する操作は、Clockのメソッドを通じて実行されます。 日付と時刻は、InstantInTimeとDurationとして表されます。

  • インスタント :年、月、DayOfMonth、時間、分、および秒で構成されます。 MakeInstantメソッドを使用してインスタントを作成できます。
  • 期間 :インスタンス間で経過したミリ秒単位の時間。 デュレーションはデュレーション法で取得できます。

インスタンスはデバイスのローカルタイムゾーンにあると見なされます。 それらがミリ秒に、またはミリ秒から変換されるとき、与えられたインスタンスのためのミリ秒はUTC(グリニッジ標準時)で1970年1月1日から計算されます。

Instantをテキストに変換する方法もあります。 許容されるパターンは空の文字列、MM / dd / YYYY HH:mm:ss a、またはMMM d、yyyy HH:mmです。 空の文字列はデフォルトのフォーマットを提供します。これはFormatDateTimeの場合は “MMM d、yyyy HH:mm:ss a"、FormatDateの場合は “MMM d、yyyy"です。 すべての可能なフォーマットを見るためには、 ここを見てください 。

日付と時刻の組み合わせに関するメモ:ある日付の時刻と別の日付の時刻(たとえばDatePickerとTimePicker)を組み合わせるには、部分をテキストとして抽出し、そのテキストを使用して新しいインスタントを作成します。

例:

プロパティ

TimerAlwaysFirestrueの場合、アプリケーションが画面に表示されていなくても起動しますTimerEnabledtrueの場合、タイマーを起動しますTimerIntervalタイマーイベント間の間隔(ミリ秒)

イベント

Timer()タイマーが切れました。

方法

InstantInTime AddDays(InstantInTime instant, number days)引数の数日後の瞬間を返しますInstantInTime AddDuration(InstantInTime instant, Duration duration)引数の直後にある瞬間を返します。 期間はClock.Duration()から取得できます。InstantInTime AddHours(InstantInTime instant, number hours)引数の数時間後に瞬間を返しますInstantInTime AddMinutes(InstantInTime instant, number minutes)引数の数分後に瞬間を返しますInstantInTime AddMonths(InstantInTime instant, number months)引数から数ヶ月後の瞬間を返しますInstantInTime AddSeconds(InstantInTime instant, number seconds)引数の数秒後に瞬間を返しますInstantInTime AddWeeks(InstantInTime instant, number weeks)引数の数週間後の瞬間を返しますInstantInTime AddYears(InstantInTime instant, number years)引数から数年後の瞬間を返しますnumber DayOfMonth(InstantInTime instant)その瞬間からの月の日(1から31)を返しますDuration Duration(InstantInTime start, InstantInTime end)瞬間間の経過時間をミリ秒単位で返します。number DurationToSeconds(Duration duration)期間を秒数に変換します。number DurationToMinutes(Duration duration)期間を分数に変換します。number DurationToHours(Duration duration)期間を時間数に変換します。number DurationToDays(Duration duration)期間を日数に変換します。number DurationToWeeks(Duration duration)期間を週数に変換します。text FormatDate(InstantInTime instant, text pattern)指定されたパターンでインスタントの日付を表すテキストを返しますtext FormatDateTime(InstantInTime instant, text pattern)指定されたパターンでインスタントの日時を表すテキストを返しますtext FormatTime(InstantInTime instant)デバイスのローカルタイムゾーンでの瞬間の時間を表すテキストを返します。number GetMillis(InstantInTime instant)1970年から経過したミリ秒単位の時間をUTC(グリニッジ標準時)で返します。number Hour(InstantInTime instant)瞬間からの日の時(0-23)を返しますInstantInTime MakeInstant(text from)MM / dd / YYYY hh:mm:ssまたはMM / dd / YYYYまたはhh:mmで指定されたインスタントを返します。 テキスト入力の例は “06/22/2015 12:18″です。InstantInTime MakeInstantFromMillis(number millis)1970年からのミリ秒で指定された瞬間をUTCで返します。number Minute(InstantInTime instant)瞬間からの時(0-59)の分を返しますnumber Month(InstantInTime instant)その瞬間からの月(1〜12)を返しますtext MonthName(InstantInTime instant)インスタントから月の名前を返します。例:January、February、March …InstantInTime Now()現在の時刻を携帯の時計から読み取った瞬間を返しますnumber Second(InstantInTime instant)瞬時から分の秒(0-59)を返しますnumber SystemTime()電話の内部時間を返しますnumber Weekday(InstantInTime instant)1(日曜日)から7(土曜日)までの数として表された曜日を返します。text WeekdayName(InstantInTime instant)その瞬間から曜日の名前を返しますnumber Year(InstantInTime instant)その瞬間から年を返します

ジャイロセンサー

毎秒度の単位で3次元で角速度を測定することができる見えないコンポーネント。

機能するには、コンポーネントのEnabledプロパティをTrueに設定し、デバイスにジャイロスコープセンサーを取り付ける必要があります。

プロパティ

Availableジャイロセンサーが使用可能かどうかを示します。Enabled有効にすると、センサーイベントが生成され、 XAngularVelocity 、 YAngularVelocity 、 ZAngularVelocityプロパティには意味のある値が設定されます。XAngularVelocityX軸周りの角速度(1秒あたりの度数)。YAngularVelocityY軸周りの角速度(1秒あたりの度数)。ZAngularVelocityZ軸を中心とした角速度(1秒あたりの度数)。

イベント

GyroscopeChanged(number xAngularVelocity, number yAngularVelocity, number zAngularVelocity, number timestamp)ジャイロセンサーデータが変更されたことを示します。 timestampパラメータは、イベントが発生した時間(ナノ秒単位)です。

方法

無し

位置センサー(GPS)

経度、緯度、高度(デバイスでサポートされている場合)、速度(デバイスでサポートされている場合)、住所などの位置情報を提供する非表示コンポーネント。これは「ジオコーディング」を実行して、特定の住所(必ずしも現在の住所ではない)を緯度( LatitudeFromAddressメソッドを使用)と経度( LongitudeFromAddressメソッドを使用)に変換することもできます。

機能するには、コンポーネントのEnabledプロパティをTrueに設定し、デバイスでワイヤレスネットワークまたはGPS衛星(屋外の場合)を介して位置検出を有効にする必要があります。

アプリの起動時に位置情報がすぐに利用できない場合があります。 場所プロバイダーが検索されて使用されるまで少し待つか、OnLocationChangedイベントを待つ必要があります。

エミュレータはすべてのデバイスのセンサーをエミュレートするわけではありません。 コードは物理デバイス上でテストする必要があります。

プロパティ

Accuracy

LocationSensorは、衛星の品質、携帯電話基地局、およびその他の位置推定に使用されるデータに基づいて、さまざまな信頼度でデバイスを検出できます。 精度値は、センサーの検出位置の周囲のメートル単位の半径です。 この半径内に配置される可能性は68%です。 より正確な位置検出はより小さな正確度数をもたらし、それはアプリがデバイスが実際に配置されている場所により高い信頼性を持つことを可能にします。

精度がわからない場合、戻り値は0.0ですAltitude

利用可能な場合は、Androidデバイスの高度(メートル)。

標高は、 世界測地系84の参照楕円体から測定されます。海抜ではありません。

デバイスが高度を正確に感知するのは難しいことに注意してください。 携帯電話/タブレットで報告された高度は30メートル以上離れて簡単にオフにすることができます。AvailableProvidersGPSやネットワークなど、利用可能なサービスプロバイダのリスト。 この情報はリストとしておよびテキスト形式で提供されます。CurrentAddress

Googleの地図データベースからのAndroidデバイスの実際の住所。

住所は常にプロバイダーから入手できるとは限らず、報告される住所は常に装置が配置されている建物の住所とは限りません。

特定の場所について利用可能な住所情報がGoogleにない場合、これはNo address availableを返します。DistanceInterval

センサーが位置の更新情報の送信に使用する最小距離間隔をメートル単位で決定します。 たとえば、これが50に設定されている場合、センサーは50メートルを通過した後にのみLocationChangedイベントを発生させます。 ただし、センサーは更新が正確に距離間隔で受信されることを保証しません。 たとえば、イベントの発砲に5メートル以上かかることがあります。

このプロパティを使用するときに精度と照合することも役に立ちます。 デバイスが移動しているとき、検出された位置の精度は常に変化しています。Enabledtrueの場合、LocationSensorはGPS、WiFiロケーション、またはデバイスで利用可能な他の手段からロケーション情報を読み取ろうとします。 この設定は、位置情報が実際に利用可能かどうかを制御しません。 デバイスの場所は、デバイス設定で有効または無効にする必要があります。HasAccuracy真の場合、Androidデバイスはその正確性レベルを報告できます。HasAltitude真の場合、Androidデバイスはその高度を報告できます。HasLongitudeLatitudetrueの場合、Androidデバイスは経度と緯度を報告できます。LatitudeAndroid端末の緯度。 これは小数位から小数位5桁で報告されます。 緯度は90(北)から-90(南)の間の値で、0は赤道を表します。LongitudeAndroidデバイスの経度 これは小数位から小数位5桁で報告されます。 経度は180(東)から-180(西)の間の値で、0は主子午線を表します。ProviderLocked

デバイスはサービスプロバイダーを変更しません。

現在のプロバイダが適切な位置情報を提供できない場合、デバイスはサービスプロバイダを切り替えることが可能です。 ProviderLockedはブール値で、true / falseです。 プロバイダが変更されないようにするには、trueに設定します。 必要に応じて自動切り替えを可能にするには、falseに設定します。ProviderName現在のサービスプロバイダ プロバイダーはおそらくGPSかネットワークのどちらかでしょう。TimeInterval

センサーが位置の更新情報の送信に使用する最小間隔をミリ秒単位で決定します。 ただし、位置の更新は電話の位置が実際に変更されたときにのみ受信され、指定された時間間隔の使用は保証されません。 たとえば、30000が時間間隔として使用されている場合、ロケーションの更新は30000ミリ秒より早く起動されることはありませんが、その後いつでも起動される可能性があります。

30000ms(30秒)より小さい値は、ほとんどのデバイスにとって実用的ではありません。 小さい値にするとバッテリーが消耗し、GPSが過負荷になる可能性があります。

イベント

LocationChanged(number latitude, number longitude, number altitude, number speed)新しい場所が検出されたことを示します。 速度はメートル/秒で報告されます。 他の値はそれらのプロパティと一致します。StatusChanged(text provider, text status)プロバイダが失われたときや新しいプロバイダの使用が開始されたときなど、ロケーションプロバイダサービスのステータスが変更されたことを示します。

方法

number LatitudeFromAddress(text locationName)与えられた住所の緯度を導き出しますnumber LongitudeFromAddress(text locationName)与えられた住所の経度を導き出します

NFC

NFC機能を提供するための非表示コンポーネント。 現時点では、このコンポーネントはテキストタグの読み書きのみをサポートしています(デバイスでサポートされている場合)。

テキストタグを読み書きするには、コンポーネントのReadModeプロパティをそれぞれTrueまたはFalseに設定する必要があります。

注:このコンポーネントはApp InventorアプリのScreen1でのみ機能します。

プロパティ

LastMessageReadModeTextToWriteWriteType

イベント

TagRead(text message)新しいタグが検出されたことを示します。 目録で指定されているように、現在これは単なるプレーンテキストタグです。 Compiler.javaを参照してください。TagWritten()TagWrittenのイベント

方法

無し

方位センサー

携帯電話の空間的な向きを判断するには、向きセンサーコンポーネントを使用します。

方位センサーは、次の3つの値を度単位で報告する非表示コンポーネントです。

  • Roll :デバイスが水平のときは0度、デバイスが左側に傾くと90度に増加し、デバイスが右側に傾くと-90度に減少します。
  • ピッチ :デバイスが水平のときは0度、デバイスが傾くと90度まで上が向くように増加し、次にひっくり返すと0度まで減少します。 同様に、デバイスが下に向くように傾けられると、ピッチは−90度まで減少し、それからそれが完全にひっくり返されるにつれて0度まで増加します。
  • 方位角 :デバイスの上部が北を指す場合は0度、東を指す場合は90度、南を指す場合は180度、西を指す場合は270度など。

これらの測定は、装置自体が動いていないことを前提としています。

プロパティ

AvailableAndroidデバイスに方位センサーが存在するかどうかを示します。Enabled設定すると、方向センサーが有効になります。Azimuthデバイスの方位角を返します。Pitchデバイスのピッチ角を返します。Rollデバイスのロール角を返します。Magnitudeデバイスがどれだけ傾いているかを示す0から1の間の数値を返します。 それは装置の表面を転がるボールによって感じられるであろう力の大きさを与える。Angleデバイスが並べられている方向を示す角度を返します。 すなわち、それは装置の表面上を転がるボールによって感じられるであろう力の方向を指示する。

イベント

OrientationChanged(number azimuth, number pitch, number roll)向きが変わったときに呼び出されます。

歩数計

歩数計のように機能するコンポーネント。 それはAccerleromterを介して動きを感知し、一歩踏み出されたかどうかを判断しようとします。 設定可能な歩幅を使用して、移動距離も推定できます。

プロパティ

Distanceおおよその距離はメートルで移動しました。ElapsedTime歩数計が開始されてから経過した時間(ミリ秒)。SimpleSteps歩数計が始まって以来取られる簡単なステップの数。StopDetectionTimeout「停止」状態になるまでのアイドル時間(ステップは検出されない)のミリ秒単位の期間StrideLength平均歩幅をメートル単位で設定します。WalkSteps歩数計が起動してからの歩数。

イベント

SimpleStep(number simpleSteps, number distance)このイベントは、生のステップが検出されたときに実行されます。WalkStep(number walkSteps, number distance)このイベントは、歩行ステップが検出されたときに実行されます。 歩行ステップは、前進運動に関与しているように見えるステップです。

方法

Pause()歩数と距離のカウントを一時停止します。Reset()ステップカウンタ、距離測定、および時間経過をリセットします。Resume()カウントを再開します。Startの同義語です。Save()歩数計の状態を電話機に保存します。 歩数計を使用するアプリの呼び出し間のステップ数と距離の累積を許可します。 アプリごとに保存された状態が異なります。Start()歩数カウントStop()歩数のカウントを停止

近接センサー

デバイスの表示画面に対するオブジェクトの近接度(cm)を測定できるセンサーコンポーネント。 このセンサーは通常、受話器が人の耳にかざされているかどうかを判断するために使用されます。 つまり、オブジェクトからデバイスまでの距離を判断できます。 多くのデバイスはcm単位で絶対距離を返しますが、近距離と遠距離の値のみを返すものもあります。 この場合、センサーは通常、遠距離状態では最大距離値を報告し、近距離状態では小さい値を報告します。 次の値が報告されます。

  • 距離 :オブジェクトからデバイスまでの距離

プロパティ

Availableデバイスに近接センサーがあるかどうかを報告しますEnabled有効になっている場合、デバイスは近接性の変化を監視しますKeepRunningWhenOnPausetrueに設定した場合、アプリが表示されていなくても近接性の変化を検知し続けます。Distanceオブジェクトからデバイスまでの距離を返しますMaximumRangeデバイスのProximitySensorの最大範囲を報告します。

イベント

ProximityChanged(number distance)デバイスからオブジェクトまでの距離(cm)が変わると呼び出されます。

レファレンス