約 5,976,130 件
https://w.atwiki.jp/api_programming/pages/123.html
下位ページ Content Drawables, Views, And Layouts Viewのライフサイクル リソースファイルで Layouts と Drawables を定義するリソース Layout を使うレイアウト定義の一例 レイアウトリソースの使用方法 Drawables User Interface Making a user interface toolkit that can adapt to multiple products is hard, but it is even harder in the Garmin ecosystem. The mechanical designs of these products may be very different depending on the use case the product is designed for. As a result, the user interfaces of Garmin devices also vary by product some have physical buttons, some have coordinate touch screens, and some provide up, down, and action buttons. Rather than design a user interface toolkit that adapts to what device the UI is running on, the Connect IQ SDK makes it easier to port the user interface to different products. At the resource compiler level, we include a way to define a page in XML as well as specify page definitions per product. These tools make it easy to support multiple devices with a single app. Drawables, Views, And Layouts Watch faces と apps ではページスタック(page stack)をもっている。ヴュー(View)はページを表すオブジェクトである。ヴューはページスタックにプッシュしたちポップされたりする。まさにスタック。 ヴューはtransitionを使って、ページスタック上で別のヴューと入れ替えたりもできる。 View が画面。画面の構成を定義するのが Layout。Layout の要素として配置されるのが Drawables 、といったところか? 本家のページより抜粋 Viewのライフサイクル widgets と watch-apps では onStart() ← これはAppBase、つまりプログラム本体の関数WatchUi.Viewが取り込まれる前に実行される onLayout()リソースの読み込み。表示よりも前に実行される。 onShow()ヴューがForegroundに来た時に実行される。 onUpdate()ここで描画を実行。drawはここで使う。 onShow()の後、勝手に実行 WatchUI.requestUpdate()を実行しても、onUpdate()が実行される。 onHide() watchfaces と datafields では onLayout() onShow() onUpdate() class View { // ヴューのエントリポイントがonLayout(). // リソースが読み込まれ、レイアウトがセットされる前に呼ばれている。 // @param [Graphics.Dc] dc The drawing context // @return [Boolean] true if handled, false otherwise function onLayout( dc ); // When the View is brought into the foreground, onShow() is called. // @return [Boolean] true if handled, false otherwise function onShow(); // When a View is active, onUpdate() is used to update dynamic content. // This function is called when the View is brought to the foreground. // For widgets and watch-apps it is also called when WatchUi.requestUpdate() // is called. For watchfaces it is called once a minute and for datafields // it is called once a second. If a class that extends View does not // implement this function then any Drawables contained in the View will // automatically be drawn. // @param [Graphics.Dc] dc The drawing context // @return [Boolean] true if handled, false otherwise function onUpdate( dc ); // Before the View is removed from the foreground, onHide() is called. function onHide(); // Use setLayout() to set the layout for the View. If the extending class // does not override onUpdate(), then all Drawables contained in layout // will automatically be drawn by the View. // @param [Array] layout An array of Drawables function setLayout(layout); } 各ヴューはレイアウト(layout)を持っている。 レイアウトとはDrawablesとよばれる描画オブジェクトの集まりで、各Drawableはビューに置かれる。 Drawableはdrawメソッドを通じて、デバイスコンテキストへ描画される。 どんなDrawableを拡張したオブジェクトも描画オブジェクトで、プロパティはpublicになる。 Monkey C は、基本的はdrawablesとしてレイアウトにリソースとしてText, Bitmapを配置できる。 リソースファイルで Layouts と Drawables を定義する リソース Layout と Drawable は「リソース」ファイルとして定義する(することができる、が正しいか)。これにより Monkey C を扱わずとも、特定のデバイス向けのレイアウトを作成することができる。 加えて DrawableList オブジェクトを can also be defined, which are Drawable objects that can draw a number of graphics primitives. Layout を使う XML上でレイアウトを定義する場合、描画オブジェクトをレイアウトタグの中に並べればよい。リストに並べられた描画オブジェクトはMonkey Cの描画オブジェクトに変換され、次々と描画される。そのため、2つ以上の描画オブジェクトがあれば、1つ目を描画した上から2つ目が描画されることになる。 レイアウト定義の一例 resources layout id="MainLayout" drawable id="MainBackground" / label text="Page Heading" x="10" y="5" font="Gfx.FONT_LARGE" color="Gfx.COLOR_BLACK" / label text="Your information goes here." x="10" y="25" font="Gfx.FONT_MEDIUM" color="Gfx.COLOR_DK_GREY" / /layout /resources レイアウトリソースの使用方法 onLayout(dc)内で、setLayout()で登録 onUpdate(dc)内でView.onUpdate(dc)を呼び出す。ViewのonUpdate(dc)を呼び出さないとほっとかれる。 class MainView { function onLayout( dc ) { setLayout( Rez.Layouts.MainLayout( dc ) ); // レイアウトを読み込み } function onUpdate( dc ) { // Call parent’s onUpdate(dc) to redraw the layout View.onUpdate( dc ); // この下に更にアップデートする必要のあるものを記述 } } Layout タグでサポートされる属性 属性 定義 値 初期値 補足 id 紐付けるためのID番号This is used to reference the layout in the Rez module 半角文字で始まる値 NA 必須 Drawables (ビットマップファイル、drawable XML リソース) を drawable タグ を使って、レイアウトの中に含めることができる。 属性 定義 値 初期値 補足 id drawable の id The ID provided here references the drawable defined in the resource XML file 半角文字で始まる値 NA 必須; resource XML file で定義される必要あり Text can also be included in layouts. To inlude text use the label tag, which supports the following attributes 属性 内容 値 初期値 補足 text 表示する文字列 NA An empty string font フォント Graphics font constant or the ID of a user-defined font Graphics.FONT_MEDIUM x 表示X位置 ピクセル値、もしくは center 0 y 表示X位置 ピクセル値、もしくは center 0 justifcation How the text should be justified in relation to the X Y location Graphics text justify constant Graphics.TEXT_JUSTIFY_LEFT color The color of the text Graphics color constant or a 24-bit integer of 0xRRGGBB 形式 The current draw context’s foreground color Drawables Drawable XML resources consist of a list of basic drawables bitmaps and shapes. To create an XML drawable, define a drawable-list in an XML resource file. Both bitmap and shape tags should be be placed as child nodes inside the drawable-list . An example drawable-list resources drawable-list id="Smiley" background="Gfx.COLOR_YELLOW" shape type="circle" x="10" y="10" radius="5" color="Gfx.COLOR_BLACK" / shape type="circle" x="30" y="10" radius="5" color="Gfx.COLOR_BLACK" / bitmap id="mouth" x="15" y="25" filename="../bitmaps/mouth.png" / /drawable-list /resources To use this drawable in code do the following function onUpdate( dc ) { var mySmiley = new Rez.Drawables.Smiley(); mySmiley.draw( dc ); } The drawable-list tag supports the following attributes Attribute Definition Valid Values Default Value Notes id The ID of the drawable Any string that starts with a character NA Required x The X coordinate of the top left corner in relation to the parent element pixel value or center 0 y The Y coordinate of the top left corner in relation to the parent element pixel value or center 0 width The width of the drawable list. pixel value or fill fill height The height of the drawable list. pixel value of fill fill foreground The color of elements (shapes and text) drawn in this layout Graphics color constant or a 24-bit integer of the form 0xRRGGBB The current draw context’s foreground color background The background color of this layout Graphics color constant or a 24-bit integer of the form 0xRRGGBB Gfx.COLOR_TRANSPARENT The shape tag supports the following attributes Attribute Definition Valid Values Default Value Notes type The type of the shape to be drawn rectangle, ellipse, circle, or polygon NA Required x The X coordinate of the top left corner in relation to the parent element pixel value or center 0 y The Y coordinate of the top left corner in relation to the parent element pixel value or center 0 points A list of points which defines the polygon x1, y1], [x2, y2], ... , [xN, yN NA Required for polygon; must have at least 3 points width The width of the shape to be drawn pixel value or fill fill Only valid for ellipse and rectangle height The height of the shape to be drawn pixel value or fill fill Only valid for ellipse and rectangle color The color of the shape to be drawn Graphics color constant or a 24-bit integer of the form 0xRRGGBB The current draw context’s foreground color corner_radius The radius of the rounded corners of the rectangle pixel value 0 Only valid for rectangle radius The radius of the circle pixel value 0 Required for circle border_width The width of the border around the shape pixel value 0 Only valid for rectangle, ellipse, and circle border_color The color of the border around the shape Graphics color constant or a 24-bit integer of the form 0xRRGGBB The current draw context’s foreground color Only valid for rectangle, ellipse, and circle The bitmap tag supports the following attributes Attribute Definition Valid Values Default Value Notes id The ID of the drawable Any string that starts with a character NA Required x The X coordinate of the top left corner in relation to the parent element pixel value or center 0 y The Y coordinate of the top left corner in relation to the parent element pixel value or center 0 filename The relative path to the image that should be shown A valid, relative path NA Required Input Handling As if input handling wasn’t already one of the most important and complicated pieces of a UI toolkit, Garmin devices take the complication up a level. Unlike those touchable glowing rectangles that are modern smart phones, Garmin devices come in lots of shapes and sizes. Touch screens are not always ideal for all watch products, so there is a mix of input styles and screen technologies. It’s the job of the UI toolkit to make this coherent to the developer. Input and App Types Not all app types have access to input. Watch faces and data fields cannot handle input, though widgets can receive input (may be limited on some devices) and watch-apps will have the most input capability. Input Delegates The Delegate object is an object that implements a certain interface specific to input handling. Monkey C provides a low level InputDelegate that allows handling of events at a basic level. This is good when the app needs to handle button presses or screen presses in a particular way. module WatchUi { // This class implements basic input handling. A developer needs to override // the events they want to handle. class InputDelegate { // Key event // @param evt KEY_XXX enum value // @return true if handled, false otherwise function onKey( evt ); // Click event // @param evt Event object with click information // @return true if handled, false otherwise function onTap( evt ); // Screen hold event. Sent if user is touching // the screen // @param evt Event object with hold information // @return true if handled, false otherwise function onHold( evt ); // Screen release. Sent after an onHold // @param evt Event object with hold information // @return true if handled, false otherwise function onRelease( evt ); // Screen swipe event // @param evt Event function onSwipe( evt ); } } Behaviors Garmin makes products with a purpose, and that purpose can alter the design of one product line over another. Deciding whether a product has a touch screen or has buttons can depend on the environment in which the user will take. For instance, if the product is intended to be used in water (swimming, canoeing, on a boat), it may not have a touch screen. These decisions make for superior products, but also add to developer frustration due to device fragmentation. Most products will support common behaviors (next page, back a page), but how they are executed by the user may differ based on the available input types. To help with this dilemma, Monkey C exposes events at a behavior level. Behaviors separate high-level intentions from the actual input type—next page versus screen press. The BehaviorDelegate is a super class of InputDelegate and maps its low level inputs to common operations across multiple products. Using the BehaviorDelegate can lead to much more portable code. class BehaviorDelegate extends InputDelegate { // When a next page behavior occurs, onNextPage() is called. // @return [Boolean] true if handled, false otherwise function onNextPage(); // When a previous page behavior occurs, onPreviousPage() is called. // @return [Boolean] true if handled, false otherwise function onPreviousPage(); // When a menu behavior occurs, onMenu() is called. // @return [Boolean] true if handled, false otherwise function onMenu(); // When a back behavior occurs, onBack() is called. // @return [Boolean] true if handled, false otherwise function onBack(); // When a next mode behavior occurs, onNextMode() is called. // @return [Boolean] true if handled, false otherwise function onNextMode(); // When a previous mode behavior occurs, onPreviousMode() is called. // @return [Boolean] true if handled, false otherwise function onPreviousMode(); } Built In Handlers In general, complicated input from users and feedback to users should not be done on a wearable device, but should instead be done via a phone app or web page. However, sometimes the device needs to get some form of user input or provide confirmation to the user. WatchUi provides three widgets to handle input menus, the generic picker, and the number picker (the number picker has been deprecated in favor of the generic picker). Two additional handlers provided by WatchUi can be used to give feedback to the user the confirmation dialog and progress dialog. Menu A menu is a list of options for the user. The options are displayed in a list that matches the device the app is running on. A menu can be defined in the resource XML file using the following format menu id="MainMenu" menu-item id="item_1" Item 1 /menu-item menu-item id="item_2" Item 2 /menu-item /menu The resource compiler will then take this XML and generate a Menu object in the Rez module. In order to use this menu, a developer simply needs to push the menu and a delegate for the menu using Ui.pushView() class MyClass extends Ui.View { function openTheMenu() { Ui.pushView( new Rez.Menus.MainMenu(), new MyMenuDelegate(), Ui.SLIDE_UP ); } } class MyMenuDelegate extends Ui.MenuInputDelegate { function onMenuItem(item) { if ( item == item_1 ) { // Do something here } else if ( item == item_2 ) { // Do something else here } } } Generic Picker The Picker class, along with the PickerDelegate and PickerFactory classes, provides applications with the ability to create onscreen lists of user-selectable objects. A picker consists of one or more choosable objects, a title, a next and previous arrow, and a confirm button. The next and previous arrows and the confirm button are device specific but can be overwritten if desired. Pickers are pushed using WatchUi.pushView(), providing a PickerDelegate for the input delegate. A PickerFactory is required to indicate what should be displayed for each pickable value. Sample picker implementations can be found in the Picker sample project, inside the samples/Picker directory. User Interface [Main components of a generic picker layout] The above image is a representation of the general structure of what a picker should look like on a square screen. Other screen formats should have the same layout with some size differences to account for the screen and button layout. The top red bar represents where the title of the picker is displayed. Up and down arrows to scroll through the available options are placed where the green boxes are. The leftmost blue box is where the last item you selected is shown if the picker has multiple selectable items. The center blue box is the item you are currently selecting. The white box will either be the next selectable item in the list or the button to confirm your selection. Development Interface class Picker extends Toybox.WatchUi.View { // Constructor // @param [Dictionary] options @see Picker#setOptions function initialize( options ); // Set the options for the Picker. // @param [Dictionary] options the options for the Picker // @option options [Drawable] title the title for the Picker. Required. // @option options [Array] pattern an Array of [Object] for the Picker to display. If the Array entry is a PickerFactory then it is presented to the user to make a choice. If it is a Drawable then it is display only. Required. // @option options [Array] defaults an Array of [Number] indicating the starting index for each entry in pattern. Optional. // @option options [Drawable] nextArrow a custom next icon for the Picker. Optional. // @option options [Drawable] previousArrow a custom previous icon for the Picker. Optional. // @option options [Drawable] confirm a custom confirm icon for the Picker. Optional. function setOptions( options ); } class PickerDelegate { // Handle a confirm event from a [Picker] // @param [Array] values The chosen values from the Picker. For [Drawable] entries, null will be returned for that value. function onAccept( values ); // Handle a cancel event from a [Picker] function onCancel(); } class PickerFactory { // Generate a Drawable instance for a given item // @param [Number] item Item index // @param [Boolean] isSelected true if the current item is the selected item, false otherwise // @return [Drawable] object to be rendered function getDrawable( item, isSelected ); // Return a representative value for this item // @param [Number] item Item index // @return [Object] Representative item for the given index function getValue( item ); // Get the number of items in the factory // @return [Number] number of items in the factory function getSize(); } Number Picker - DEPRECATED To allow the user to pick or adjust numerical data, the number picker widget is your best bet. The number picker widget allows for editing or adjusting of common numerical types. Here’s an example of number picker use enum { NUMBER_PICKER_DISTANCE, // A Float in meters NUMBER_PICKER_TIME, // A Duration NUMBER_PICKER_TIME_MIN_SEC, // A Duration NUMBER_PICKER_TIME_OF_DAY, // A Duration representing the number of seconds since midnight NUMBER_PICKER_WEIGHT, // A Float in kilograms NUMBER_PICKER_HEIGHT, // A Float in meters NUMBER_PICKER_CALORIES, // A Number NUMBER_PICKER_BIRTH_YEAR // A Number } class NumberPicker { // Constructor // @param mode An enum value of type NUMBER_PICKER_* // @param initialValue The initial value for the Number Picker, type // depends on mode function initialize( mode, initialValue ); } class NumberPickerDelegate { // When a number is chosen, onNumberPicked() is called, passing the // chosen value. // @param value The chosen number, type depends on the NumberPicker mode function onNumberPicked( value ); } Confirmation Dialog The confirmation dialog provides a simple yes/no dialog. This is useful when presenting a simple selection. enum { CONFIRM_NO, CONFIRM_YES } class Confirmation { // Constructor // @param [String] message A textual confirmation message function initialize( message ); } class ConfirmationDelegate { // When a response is chosen, onResponse() is called, passing // the response of CONFIRM_NO or CONFIRM_YES // @param response The response of the confirmation of CONFIRM_NO or CONFIRM_YES function onResponse( response ); } Progress Bar The progress dialog gives a standard wait dialog. It has two modes—one that shows the completion of some process, and a second that acts a wait timer displaying an indeterminate amount of progress. The look and feel of the progress bar will be device-specific. class ProgressBar { // Constructor // @param [String] displayString The string to display on the progress bar view // @param [Float] startValue The initial value for the progress bar (0-100), null for "busy" function initialize( displayString, startValue ); // Use setProgress() to set the value of the progress bar. // @param [Float] progressValue The value for the progress bar (0-100), null for "busy" function setProgress( progressValue ); // Use setDisplayString() to set the string displayed on the progress bar view. // @param [String] displayString The string to display on the progress bar view function setDisplayString( displayString ); }
https://w.atwiki.jp/api_programming/pages/152.html
Class Toybox WatchUi View 下位ページ DataField Contents Class Toybox WatchUi View直下のサブクラス Instance Method Summary Instance Method Details(WatchUi.Drawable) findDrawableById(id) (Object) onHide View がフォアグラウンドから削除される前に呼び出される。 (Boolean) onLayout(dc) View のエントリポイント (Boolean) onShow (Boolean) onUpdate(dc) アクティブなビューの、内容を更新する (Object) setLayout(layout) Class Toybox WatchUi View View クラスは 描画ページの基礎クラスです。 アプリの各ビューのライフサイクルを扱う。 widgets と watch-apps のライフサイクルは onStart() onLayout() onShow() onUpdate() onHide() watchfaces と datafields のライフサイクルは onLayout() onShow() onUpdate() となる。データフィールドでは、サイズが最後の onUpdate() からサイズが変更されたら、 onLayout() が呼び出される。SimpleDataField オブジェクトはまた違うライフサイクルを持ち、上記の関数が呼び出されることはない。 ライフサイクルについて Since 1.0.0 直下のサブクラス DataField Picker WatchFace Instance Method Summary (WatchUi.Drawable) findDrawableById(id) Find a Drawable by its ID. (Object) onHide Before the View is removed from the foreground, onHide() is called. (Boolean) onLayout(dc) The entry point for the View is onLayout(). (Boolean) onShow When the View is brought into the foreground, onShow() is called. (Boolean) onUpdate(dc) When a View is active, onUpdate() is used to update dynamic content. (Object) setLayout(layout) Use setLayout() to set the layout for the View. Instance Method Details (WatchUi.Drawable) findDrawableById(id) Find a Drawable by its ID. Parametersid (String) The ID of the Drawable to find Returns (WatchUi.Drawable) The Drawable if found, null otherwise Since 1.0.0 (Object) onHide View がフォアグラウンドから削除される前に呼び出される。 ビューをページスタックに残す際、ここでメモリからリソースを開放する。 Since 1.0.0 (Boolean) onLayout(dc) View のエントリポイント リソースをロードしビューのレイアウトがセットされる前に呼び出される。 Parametersdc (Graphics.Dc) The drawing context Returns (Boolean) true if handled, false otherwise Since 1.0.0 (Boolean) onShow When the View is brought into the foreground, onShow() is called. This is where you should load resources into system memory for use in this view. Returns (Boolean) true if handled, false otherwise Since 1.0.0 (Boolean) onUpdate(dc) アクティブなビューの、内容を更新する フォアグラウンドのViewに対して呼び出される。widgets と watch-apps では、WatchUi.requestUpdate() が実行されると、呼び出される。 watchfaces では毎分、datafields では毎秒呼び出される。 If a class that extends View does not implement this function then any Drawables contained in the View will automatically be drawn. Parametersdc (Graphics.Dc) 描画コンテクスト Returns (Boolean) true if handled, false otherwise Since 1.0.0 (Object) setLayout(layout) レイアウト情報を読み込む。 拡張クラスが onUpdate() をオーバーライドしていなければ、すべてのlayout に含まれる Drawables が自動的に View に描画される。 Parameterslayout (Layout) An array of Drawables Since 1.0.0
https://w.atwiki.jp/mydefrag_jp/pages/19.html
原文 http //www.mydefrag.com/Scripts-FileBoolean.html 更新日 2010/12/12 (ここで取り扱っている内容の原文をコピーした日付です) FileLocation Select the items (files, directories) that are located in a specified area on the disk. The ARGUMENT specifies one of several options to choose from, the first NUMBER is the beginning of the area and the second NUMBER the end, both in LCN (Logical Cluster Number). If the first NUMBER is zero then the area begins at the beginning of the disk. If the second NUMBER is zero then the area ends at the end of the disk. Syntax FileLocation(ARGUMENT , NUMBER , NUMBER) Argument Possible values for ARGUMENT BeginOfFile Select files if the beginning of the file is inside the area. EndOfFile Select files if the end of the file is inside the area. EntireFile Select files that have all their data inside the area. AnyPart Select files if any of their data is inside the area. AnyCompleteFragment Select files if at least 1 complete fragment is inside the area. Example # Highlight files from the beginning of the disk up to LCN=10000. SetFileColor(FileLocation(EntireFile,0,10000),all,255,255,255) See also FileSelect FileBoolean FileActions FileName STRINGにマッチするファイル名を持つファイルやディレクトリといったアイテムすべてを選択します。 STRINGにはワイルドカートとして*と?(ry)を含められます。 STRINGにはスラッシュやバックスラッシュ(および\円マーク)を含めないでください。すべてのファイル名について比較しますが、このファイル名にはスラッシュなどは含まれません。 この関数はすべてのハードリンク ファイル名を一つのアイテム(二つ名を持ち、同時に違う場所に存在するが、その実体は同じファイル)として扱います。ログファイルには最初に見つかった名前が載ります, so it may appear as if the function has selected some wrong items. この関数はソフトリンク(ジャンクション・シンボリックリンク)を追従しません。 Syntax FileName(STRING) Example FileSelect FileName("*.mp3") FileActions .... FileEnd See also DirectoryPath DirectoryName FullPath FileSelect FileBoolean FileActions FragmentCount Select all the items that have a number of fragments between the minimum (first number) and the maximum (second number). If the second number is zero then the maximum is infinity. Syntax FragmentCount(NUMBER , NUMBER) Example FileSelect # Select all the items that have at least 3 fragments and at most 10 fragments. FragmentCount(3,10) FileActions .... FileEnd See also FileSelect FileBoolean FileActions Fragmented Select all the items that are fragmented(yes) or not fragmented(no). Syntax Fragmented(yes) Fragmented(no) Example FileSelect # Select all the fragmented items. Fragmented(yes) FileActions .... FileEnd See also FileSelect FileBoolean FileActions FullPath STRING1にマッチするフルパスを持つディレクトリをすべて選択します。また、そのディレクトリ以下でSTRING 2にマッチするすべてのディレクトリとサブディレクトリが選択されます。 STRING1/2にはワイルドカード"*" "?" (ry)が使用できます。 ドライブレターにもマッチするようにディレクトリマスクを書いてください。 ディレクトリパスとは "c \windows\System32"のような物のことです。ノート バックスラッシュは追跡しません。ただしルート(たとえば"C \")に限りバックスラッシュを持ちます。 "*"(star)ワイルドカードはディレクトリデリミタの"\"(backslash)もマッチします。(訳注 ちょっと自信ないです)、The "*" (star) wildcard will also match the "\" (backslash) character, so it span s directories. サブディレクトリにあるファイルもまた選択されます。たとえば 「FullPath("c \Windows","*.exe")」というコマンドはWindowsフォルダの中の.exeファイルだけを選択しますが、"Windows\System32"フォルダやWindows以下のすべてのサブフォルダの.exeファイルも処理されます。 この関数はすべてのハードリンク ファイル名を一つのアイテム(二つ名を持ち、同時に違う場所に存在するが、その実体は同じファイル)として扱います。ログファイルには最初に見つかった名前が載ります, so it may appear as if the function has selected some wrong items. この関数はソフトリンク(ジャンクション・シンボリックリンク)を追従しません。 Syntax FullPath(STRING1 , STRING2) Example FileSelect // Select all *.mp3 files in all "music" folders and subfolders. FullPath("*\music","*.mp3") FileActions .... FileEnd // How to include files in a directory but not it s subdirectories. FullPath("c \windows","*") and not (FullPath("c \windows\*","*")) See also FileName DirectoryName DirectoryPath FileSelect FileBoolean FileActions Hidden Select all the items that have the "hidden" attribute set (yes) or not set (no). Hidden items are not included by Windows in an ordinary directory listing. Syntax Hidden(yes) Hidden(no) Example FileSelect # Select all the items that have the "hidden" attribute. Hidden(yes) FileActions .... FileEnd See also FileSelect FileBoolean FileActions ImportListFromBootOptimize Select the files that are listed in the "%SystemRoot%\Prefetch\Layout.ini" file. Windows XP and Vista create a list of items (files, directories, streams, etc.) that are accessed when the computer boots. MyDefrag can use that list to place the items in a zone. If used in conjunction with the * SortByImportSequence function it will place the items in the order in which they are loaded when booting. * If an item was already placed in a previous zone then it will not be selected and will not be moved. For example, the default Optimize scripts first place the MFT, then the directories, and then the items used when booting. The MFT and the directories are used when booting, but are not moved to the boot optimization zone because they have already been placed in a previous zone. * If you have a multiboot environment then the disk(s) will be optimized for the currently booted Windows. * Boot optimization is not limited to the volume where Windows is installed. If Windows uses items on other volumes, then those other volumes will also be boot optimized. Syntax ImportListFromBootOptimize() Example # Optimize the disks for faster booting. FileSelect ImportListFromBootOptimize() FileActions SortByImportSequence(Ascending) FileEnd Changing the list The "layout.ini" file is a standard Unicode text file and you can look at it with for example the Windows Notepad text editor. Microsoft (and I) feel that booting is finished when the desktop is visible and all programs have been started. The "layout.ini" file therefore lists all items that are used by Windows itself and by the first 32 programs that run after booting. The list is automatically updated by Windows, look at the date/time of the file to see when it was updated last. You can force an update with the following commandline. Rundll32.exe advapi32.dll,ProcessIdleTasks The list can contain some surprising items, files that you were not expecting to be accessed while booting. For example, Windows seems to scan lot s of folders when booting, perhaps it is looking for drivers or DLL s. The folders are listed in the layout.ini file, but the contents of the folders is not. Another example is that many programs contain their icon inside the main executable program. The executable will therefore be listed, not because the program was run when booting but because Windows needed to show the icon on the desktop. The same applies for other kinds of files, for example a big movie may end up in the list because you have a media player that is started in the background that does a quick check to see if the last played file is still there. Other background programs can do similar things. It s possible to change the list in several ways. The easiest way is to use the standard MyDefrag scripting commands. For example, to exclude all files larger than 100 megabytes you can do this # Create zone with files that are used while booting and are smaller than 100Mb. FileSelect ImportListFromBootOptimize() and Size(0,100MB) FileActions SortByImportSequence(Ascending) FileEnd Another way to change the list is by making a copy of the file, editing the file, and then using the MyDefrag * ImportListFromFile fileboolean to import the file. The advantage is that you will get a MyDefrag zone that changes very little. The disadvantage is that you have to do it all over again when something changes on the computer, for example when you install a new driver. See also SortByImportSequence FileSelect FileBoolean FileActions ImportListFromFile Select the items (files, directories) that are listed in the listfile. The STRING is the full path to an item on disk. The listfile is a flat text file, Unicode, UTF-8, or ASCII. The listfile must contain a list of full paths, 1 path per text line. For example C \WINDOWS\SYSTEM32\NTOSKRNL.EXE C \WINDOWS\SYSTEM32\PSHED.DLL C \WINDOWS\SYSTEM32\KDCOM.DLL C \WINDOWS\SYSTEM32\CLFS.SYS Paths that do not exist (or invalid paths) are quietly ignored. Folders are entities by themselves. If the listfile contains the name of a folder then only the folder will be selected, not the items in that folder or subfolders. If the listfile contains the name of an item that has already been processed (placed in a previous zone) then the item will not be selected (ignored). This is a fileboolean function and it only selects items. The FileActions will process the selected items, for example sort by name. The * SortByImportSequence fileaction will order the items in the same sequence in which they are listed in the listfile. Syntax ImportListFromFile(STRING) Example # Select and sort items exactly how I want it. FileSelect ImportListFromFile("c \users\jeroen\MyOptimizeList.txt") FileActions SortByImportSequence(Ascending) FileEnd See also SortByImportSequence FileSelect FileBoolean FileActions ImportListFromProgramHints Select the files that are listed in the "%SystemRoot%\Prefetch\*.pf" files. Windows XP and Vista create a logfile for every program that is started, containing (amongst other things) a list of items (files, directories, streams, etc.) that are accessed during the first 10 seconds of program startup. The logfiles are called "hint" files and are used by the Windows prefetcher to optimize disk access. MyDefrag can analyze the hint files and create a zone that contains all the referenced files. The zone will by default be sorted so that the most used program is first in the zone, with it s files in the order in which they are accessed. The STRING argument specifies which hint file(s) must be imported. Default is all the files in the "%SystemRoot%\Prefetch" folder. You can specify a wildcard "*" to match any character or "?" to match a single character. If the STRING contains a backslash ("\") then it is assumed to be a full path to a folder, to be used instead of the Windows prefetch folder. Hint files older than 30 days are ignored (skipped). The zone is sorted by how often programs have been started, the most started program first. This number is one of the statistics available in the hint files. Please note that a high number of startups does not necessarily mean that a program is important to the user. If a file was already placed in a previous zone then it will not be selected and will not be moved. For example, the default Optimize scripts first place the MFT, then the directories, and then the items used when booting. The MFT and the directories are used when starting a program, but are not moved to the program-hints zone because they have already been placed in a previous zone. The hint files do not list all files that belong to a program. Only the files that are accessed during the first 10 seconds of program startup. Program hints are not limited to the volume where Windows is installed. If a program uses files on other volumes then those other volumes will also be optimized. If you have a multiboot environment then the disk(s) will be optimized for the currently booted Windows. The hint files change a lot. A zone based on these files therefore also changes a lot. Syntax ImportListFromProgramHints(STRING) Example # Optimize the disk for faster program startup. FileSelect ImportListFromProgramHints("*") FileActions SortByImportSequence(Ascending) FileEnd See also SortByImportSequence FileSelect FileBoolean FileActions Largest Select the largests items (size in bytes). The argument is the number of items to be selected. Syntax Largest(NUMBER) Example FileSelect # Select the 10 largest files on the disk. Largest(10) FileActions .... FileEnd See also Smallest FileSelect FileBoolean FileActions LargestFragmentSize Select all the items that have a largest fragment with a size (in bytes) between the minimum (first number) and the maximum (second number). If the second number is zero then the maximum is infinity. Syntax LargestFragmentSize(NUMBER , NUMBER) Example FileSelect # Select all the items that have a largest fragment between 100 and 1000 bytes in size. LargestFragmentSize(100,1000) FileActions .... FileEnd See also FileSelect FileBoolean FileActions LastAccess Select all the items that have a last access time between the minimum time (first parameter) and the maximum time (second parameter). If the first parameter is empty then the minimum time is the beginning of time. If the second parameter is empty then the maximum time is infinity. * See the * LastAccessEnabled fileboolean to test if Windows is configured to record (update) the last access times. * Some improperly programmed utilities cause a change in the last access time of all items on the disk when they scan the disk. Examples are virus scanners, backup programs, text indexers. * On FAT volumes the resolution of the last access time is 1 day. NTFS delays updates to the last access time by up to one hour. Syntax LastAccess(DATETIME , DATETIME) Example FileSelect # Select all the items that were accessed less than 10 days ago. LastAccessEnabled(yes) and LastAccess(10 days ago,now) FileActions .... FileEnd See also LastAccessEnabled FileSelect FileBoolean FileActions LastAccessEnabled Select the items if Windows is configured to record (update) the last access times. This fileboolean is designed to be used together with the * LastAccess fileboolean. Windows XP and Vista have a setting to enable/disable the recording (updating) of the last access times of files. On Vista the default setting is not to record the last access times. You can enable or disable the Windows setting from a commandline with the "fsutil" command See current setting fsutil behavior query disablelastaccess Enable recording of last access time fsutil behavior set disablelastaccess 0 Disable recording of last access time fsutil behavior set disablelastaccess 1 Syntax LastAccessEnabled(yes) LastAccessEnabled(no) Example FileSelect # Select all the items that were accessed less than 10 days ago. LastAccessEnabled(yes) and LastAccess(10 days ago,now) FileActions .... FileEnd See also LastAccess FileSelect FileBoolean FileActions LastChange Select all the items that were changed between the minimum time (first parameter) and the maximum time (second parameter). If the first parameter is empty then the minimum time is the beginning of time. If the second parameter is empty then the maximum time is infinity. * The last-changed date can be older than the creation date, for example when a file was downloaded, or unpacked from an archive (such as zip or arj). Syntax LastChange(DATETIME , DATETIME) Example FileSelect # Select all the items that were changed less than 10 days ago. LastChange(10 days ago,now) FileActions .... FileEnd See also FileSelect FileBoolean FileActions
https://w.atwiki.jp/f-01a/pages/37.html
API対応状況 API対応状況Star対応機種のオプションAPI対応状況(主なもののみ)実装状況内の表記ミス 実装状況内の未確認情報 F-01AのオプションAPI対応状況(トラステッド除く)Starプロファイルでの対応状況 DoJaプロファイルでの対応状況 Star対応機種のオプションAPI対応状況(主なもののみ) NTTドコモ:Starプロファイル向けの技術資料 機能 F N P SH 備考 Bluetooth × × ○ ○ トラステッドアプリ専用 RAW画像 × × ○ × トラステッドアプリ専用 音声認識 ○ ○ ○ ○ トラステッドアプリ専用 外部ストレージ ○ ○ ○ ○ Felica ○ ○ ○ ○ 動作認識 ○ ○ ○ ○ 加速度センサ × × × × 電子コンパス × × × × 現在位置取得 ○ ○ ○ ○ トラステッドアプリ専用 赤外線OBEX通信 × ○ × ○ アバター操作 × ○ × ○ トラステッドアプリ専用 セキュリティ用暗号化 ○ ○ × × ブラウザのサスペンド起動 ○ ○ × × 動画の保存や読み込み × ○ × ○ トルカ ○ ○ ○ ○ 動画の音声部再生 ○ × × ○ Flash再生 ○ ○ ○ ○ 3Dグラフィックス ○ ○ ○ ○ OpenGL ES ○ ○ ○ ○ トラステッドアプリ専用 3Dサウンド制御 ○ ○ ○ ○ シリアル接続 × ○ × × 指紋認証 ○ × × × 歩数計 ○ × × × 回転キャンバス × ○ × × ポインティングデバイス ○ ○ × ○ シンセサイザ × × ○ × タッチパネル × ○ × ○ OpenGL拡張 ○ × ○ × トラステッドアプリ専用 その他iアプリのSDカード移動:N, P カメラでの文字認識:N Flashの保存と取得:F, N, SH 文字数指定でのIME起動:N, P, SH TextBox文字数無制限指定:N, P, SH 太字:F, N 斜体:F 太字&斜体:F UART接続:N FPコード読み取り:F, P 実装状況内の表記ミス com.docomostar.StarApplicationLAUNCHED_AS_MAP_PLATFORM_DIRECTLYが空欄 LAUNCHED_FROM_MENU_FOR_DELETIONが空欄 com.docomostar.system.PhoneSystemF-01AはDEV_KEYPADに対応している com.docomostar.ui.DisplayF-01AはKEY_CLEAR, KEY_PAGE_UP, KEY_PAGE_DOWNに対応している com.docomostar.ui.FontF-01AはFACE_PROPORTIONALで端末のフォントを使用できる 仕様では上記のような規定ではないため誤りではなくF系の独自実装 com.docomostar.opt.system.PhoneSystem2F-01AはDEV_DISPLAY_STYLEに対応していない F-01AはDEV_ALLOCATABLE_JAVA_MEMORYに対応している 実装状況内の未確認情報 以下の情報は09/04/04版のもの09/04/07版で何故か削除されてしまったため現在は参照不可 現行機種はすべて×(未対応)になっていた 09/05/19に公開されたStar-1.1の追加シンボルであることが判明 DojaのようにLEが存在する?Star-1.x LEという記述があった 今後のバージョンで追加されると思しきシンボルが記載されている選択した文字列からのiアプリ起動com.docomostar.StarApplication.LAUNCHED_FROM_SELECTED_WORDS Bluetooth帯域外の通信路を用いた接続com.docomostar.device.Bluetooth RAW画像でYUV422(YUY2)形式の色空間の使用com.docomostar.device.RawImageCapture.COLORSPACE_YUV422_YUY2 位置情報API用都市選択com.docomostar.system.CityInfoStore 身体活動量計com.docomostar.opt.device.PhysicalActivityMonitor タッチパネルでのピンチ(2本指)操作com.docomostar.ui.Display.TOUCH_PINCHOPEN_EVENT com.docomostar.ui.Display.TOUCH_PINCHCLOSE_EVENT iモーション(video/3gpp, audio/3gpp)の取得と保存com.docomostar.system.ContentsDownloader 充電残り時間の取得com.docomostar.system.PhoneSystem.DEV_CHARGING_TIME バッテリ残り時間の取得com.docomostar.system.PhoneSystem.DEV_REMAINING_TIME OpenGL ESによる非同期(並列)描画com.docomostar.ui.ogl.GraphicsOGL.flushAndStoreCommands() F-01AのオプションAPI対応状況(トラステッド除く) 以下は実機でメソッドを呼び出すなどで調査したもの Starプロファイルでの対応状況 クラス名 対応 用途 備考 Star-1.0 基本API AccelerationSensor × 加速度センサー AudioTrackPresenter ○ 動画の音声のみを再生 CertificateStore ○ 証明書機能へのアクセス Compass × 電子コンパス DTVSchedule ○ ワンセグ予約登録 Felica ○ フェリカ FlashPlayerPane ○ Flash再生用Frame Star新規クラス MovieStore × 動画の選択と登録 RollReader ○ ロール動作認識 ShakeReader ○ シェイク動作認識 StorageDevice ○ ストレージデバイスへのアクセス TorucaStore ○ トルカ管理機能にアクセス Star-1.0 オプションAPI Canvas2 × 90度回転できるCanvas FingerprintAuthenticator ○ 指紋認証 Graphics2 ○ Graphicsより高度な描画 Math ○ 数値計算(三角関数と平方根) 静的メソッドのみ MediaPlayer × SD内の動画を直接再生 Pedometer ○ 歩数計からの情報取得 PhoneResource × LED表示部の制御 PointingDevice ○ ポインティングデバイス ジョイスティックモードも使用可能 Synthesizer × シンセサイザの制御 Star新規クラス TouchDevice × タッチパネルの制御 Star新規クラス DoJaプロファイルでの対応状況 クラス名 対応 用途 備考 DoJa-5.1 基本API AccelerationSensor × 加速度センサー AudioTrackPresenter ○ 動画の音声のみを再生 CertificateStore ○ 証明書機能へのアクセス Compass × 電子コンパス DTVSchedule ○ ワンセグ予約登録 Felica ○ フェリカ MovieStore × 動画の選択と登録 OwnerProfile × マイプロフィールのデータへのアクセス RollReader ○ ロール動作認識 ShakeReader ○ シェイク動作認識 StorageDevice ○ ストレージデバイスへのアクセス TorucaStore ○ トルカ管理機能にアクセス DoJa-5.1 オプションAPI Canvas2 × 90度回転できるCanvas FingerprintAuthenticator ○ 指紋認証 Graphics2 ○ Graphicsより高度な描画 IlluminationDisplay ? イルミネーション 恐らく× Math ○ 数値計算(三角関数と平方根) 静的メソッドのみ MediaPlayer × SD内の動画を直接再生 Pedometer ○ 歩数計からの情報取得 PhoneResource × LED表示部の制御 PictureLight × ピクチャーライト PointingDevice ○ ポインティングデバイス ジョイスティックモードも使用可能 RadioTuner × ラジオの制御 SpeechSynthesizer × 文字列の読み上げ getSpeechSynthesizer()が例外を吐かないがnullを返す (上記の挙動はリファレンスに記載がない) SubDisplay × サブ画面の制御 TransparentImage × 透過画像 Imageでほぼ代用可能
https://w.atwiki.jp/tenko_ch/pages/88.html
TBS(番組ch) TBS(アニ特) TBS(番組ch) 称号:それでも○は廻っている ※それ○でもおk 点呼場所 それでも町は廻っている 最終回 点呼会場 http //hayabusa.2ch.net/test/read.cgi/livetbs/1293125378/72 点呼参加者ID 合計125ID 1 ID 4MSRhrQs 2 ID MgVu65Ve 3 ID Ztynltel 4 ID losdkYdP 5 ID mTXEWTES 6 ID 4cCRWd0D 7 ID aiZ+9nEP 8 ID sPaabYiG 9 ID yqeWFhce 10 ID i7EXs7JE 11 ID mZTiL3N3 12 ID aVTFuYES 13 ID i2i4zYoL 14 ID 3kw/Ceu3 15 ID FpvCQYCk 16 ID Fz1aycBV 17 ID TtXOEgDE 18 ID hk43twpo 19 ID OlKTgb4g 20 ID 4DRZAHbQ 21 ID /teITNCZ 22 ID FoiQJHy/ 23 ID mFeu8FRH 24 ID ybAhvYbQ 25 ID Tg83IjrE 26 ID YQKkT5Hv 27 ID P8J6AnVs 28 ID o6Y5qc8d 29 ID GVVsCSJX 30 ID z8dpq7w1 31 ID mbf6y4fu 32 ID xID7KqHs 33 ID hyNU/2uV 34 ID HGckNWv5 35 ID jfp3TZRA 36 ID xhSjH+zl 37 ID od4RbSIH 38 ID wWouEEVy 39 ID szRMeA3I 40 ID 9XG0Ry4b 41 ID OwC2VWk3 42 ID kZ7VlK5W 43 ID Rm+WTyyo 44 ID sxNCjhDl 45 ID CiinXnuL 46 ID L1wJagdz 47 ID JAT0b789 48 ID SapMWI+Z 49 ID tjUIZGJi 50 ID VMXAjFqT 51 ID /v6o6ouJ 52 ID HEwA/wBO 53 ID 4h55I/Z+ 54 ID EUX4ZsQF 55 ID 7CJSF0B/ 56 ID sHQqIlaI 57 ID rTeO1T6D 58 ID GyBGBJK3 59 ID 9ERzaCRG 60 ID 0QN8kfFG 61 ID IDFMUXxV 62 ID jm6kSVH6 63 ID jFp9eewF 64 ID N2kSxCRj 65 ID oVzVU13U 66 ID 4MORR1hy 67 ID MLHgX9R0 68 ID Z6CHO1yY 69 ID 8evcOQas 70 ID USnpW8IV 71 ID YekY3Kvu 72 ID pw3+hCZa 73 ID ulQ3djni 74 ID Q0JknltP 75 ID Xb0hHylG 76 ID pZDW0M7q 77 ID zyU1g+a5 78 ID bOCUAEXH 79 ID 8qoMyUvE 80 ID 87Y3PnQI 81 ID W1uF/TIS 82 ID 2pNkKAqm 83 ID xXRMe7M4 84 ID xHCINkiZ 85 ID A2v4OvLn 86 ID rCaj5JdA 87 ID hNMmSXph 88 ID AMSGtWem 89 ID Jc4hj1LR 90 ID P8jDS0yC 91 ID +lX0eBe5 92 ID qCgAx+Fy 93 ID dHFutS8c 94 ID 1V4wiGqg 95 ID LGYfdbL0 96 ID 9KEHp2WP 97 ID 94dhEQLo 98 ID Kv3vOwHr 99 ID noUM1Omh 100 ID VpAdDhlu 101 ID mkHiEWxD 102 ID q3FAbUBW 103 ID nOSGixap 104 ID aWQbk0Tn 105 ID otZ3kM+f 106 ID ntR1fkFk 107 ID Iedc3L5t 108 ID dSstJ7LJ 109 ID 5uX3V0ka 110 ID lkhzmmhX 111 ID 74lnWMSe 112 ID IqMhwk2M 113 ID 4XGHLU7y 114 ID SrNwuHvZ 115 ID WntBIMHO 116 ID EHDHrYmO 117 ID yymlwDHd 118 ID dCZtxqHf 119 ID IqUGkvd1 120 ID MNRRUYUp 121 ID SEp4hggJ 122 ID ll7AUwFi 123 ID VP2uKGt2 124 ID PPQQNRM2 125 ID 1aV9EcTs TBS(アニ特) 称号:◯日はサナダ記念 点呼場所 それでも町は廻っている ★12 http //hayabusa.2ch.net/test/read.cgi/liveanime/1293127310/36 点呼参加者ID 合計48ID 1 ID jd3ud+DX 2 ID aeScs71N 3 ID +aHeJGU0 4 ID 1HAKopoa 5 ID nZjokH/V 6 ID aGPelR86 7 ID EBX+Yn6C 8 ID jvmUBzsT 9 ID BFG1ixde 10 ID vgN4K4Ix 11 ID ehyMlx4s 12 ID wjJuPCun 13 ID E1aD+jQ0 14 ID oC88OqIP 15 ID Pvy65Ehs 16 ID FaEWP2fy 17 ID WDW3bG2+ 18 ID sPNWSf6L 19 ID 6XpISc09 20 ID AyKevHq7 21 ID BWSGkrIt 22 ID QgZGivqP 23 ID PHe6EBuH 24 ID H7cFuwYZ 25 ID DXqUVPKG 26 ID A5bLnTKq 27 ID 0jeeSQQO 28 ID sP6KEozZ 29 ID VLW4ArXR 30 ID K3bIyhab 31 ID QvhHa5dG 32 ID 9IgBKB/j 33 ID bw/Y/bz9 34 ID gFgILOJF 35 ID D2kD2GEG 36 ID 8ciMBDGh 37 ID Um/bM4QY 38 ID d03l0c4D 39 ID vyACng2R 40 ID A81fMoea 41 ID A90AB2Jq 42 ID I5tzHkMT 43 ID sPPoT75l 44 ID m2aXNpf0 45 ID G7s+b9ko 46 ID LGeIdy+F 47 ID fc/m24Or 48 ID qPsh+vEt
https://w.atwiki.jp/api_programming/pages/229.html
Content https //llamalab.com/automate/doc/block/index.html BlocksBlocks Apps App decision App start App start shortcut App clear cache App foreground App installed App kill App kill background App list App notifications enabled App notifications set state App notifications priority get App notifications priority set App notifications visibility get App notifications visibility set AppOp mode set AppOp mode App pick App usage Broadcast decision Broadcast receive Broadcast send [[Google]] Now voice command Plug-in action Plug-in decision Plug-in event Preferred activity Resolve activity Resolve receiver Resolve service [[Service]] start Shell command Shell command superuser Battery power Battery level Device doze mode active Device doze mode set state Device interactive Device keep awake Device reboot Device restart Device shutdown CPU speed get CPU speed set Power save mode enabled Power save mode set state Power source plugged Camera sound Audio device connected Audio player control Audio record Audio record stop Audio stream muted Audio stream set mute Audio volume Audio volume set Bluetooth SCO set state Camera start Flashlight Hotword detected Media playing Media store add Media store remove Media tags read Microphone muted Microphone set mute Ringtone pick Screenshot Sound level Sound play Sound stop Speak Speak stop Speak to file Speakerphone on Speakerphone set state Speech recognition Take picture Tone play Tone stop Vibrate Vibrate stop Video record Video record stop Concurrency Atomic add load Atomic compare store Atomic clear all Atomic load Atomic store Variables give Variables take Connectivity Airplane mode enabled Airplane mode set state Bluetooth device connect Bluetooth device connected Bluetooth device disconnect Bluetooth device pick Bluetooth device scan Bluetooth enabled Bluetooth set state Bluetooth tethering enabled Bluetooth tethering set state Data usage HTTP request Infrared transmit Mobile data enabled Mobile data set state Mobile data network type NFC enabled NFC set state NFC tag scanned NFC tag write Network connected Network throughput Network type Ping Restrict background data enabled Restrict background data set state USB tethering enabled USB tethering set state Wake-on-LAN send Wi-Fi connect Wi-Fi connected Wi-Fi enabled Wi-Fi hotspot enabled Wi-Fi hotspot set state Wi-Fi network scan Wi-Fi network pick Wi-Fi set state Wi-Fi signal strength Content Account generic add Account pick Account sync request Account sync enabled Account sync set state Alarm Alarm add Calendar event add Calendar event get Calendar event query Calendar pick Contact query Contact pick Content changed Content copy Content delete Content insert Content pick Content query Content shared Content update Content view Database modify Database query Timer add Date time Delay Date pick Duration pick Time await Time pick Time window Time zone get File storage FTP delete FTP download FTP list FTP make directory FTP upload File copy File delete File exists File list File make directory File monitor File move File pick File read File write Google Drive delete Google Drive download Google Drive list Google Drive make directory Google Drive share Google Drive upload Storage media mounted Storage space Zip compress Zip extract Flow Failure catch Fiber stop Fiber stopped Flow beginning Flow beginning pick Flow pick Flow start Flow stop Fork Go to Label Log append Subroutine General [[Android]] version Array add Array remove Array set Dictionary put Dictionary remove Expression true For each Variable set Interface Assist request Attention light Car mode enabled Car mode set state Clipboard get Clipboard set Color pick Device docked Device lock Device unlocked Dialog choice Dialog confirm Dialog input Dialog number Dialog web Display on Fingerprint gesture Fullscreen Interact Interact touch Key pressed Keyboard visible Login failed Quick Settings tile show Media button Night mode enabled Night mode set state Notification action Notification cancel Notification channel pick Notification interact Notification posted Notification show Notification snooze Process text selection Process text set Screen lock set state Screen orientation Screen orientation set Toast posted Toast show Wired headset plugged Location Geocoding reverse Geocoding Location at Location get Location mock Location pick Location provider enabled Location provider set state Location show Weather Messaging Cloud message send Cloud message receive Compose MMS Compose SMS Compose e-mail E-mail send Gmail send Gmail unread count MMS send SMS received SMS send SMS sent Sensor Ambient light Ambient temperature Atmospheric pressure Device acceleration Device orientation Magnetic field strength Motion gesture Pedometer Personal activity Proximity Significant device motion Settings CyanogenMod profile CyanogenMod profile set Input method pick Input method set Interruptions Interruptions set Notification policy get Notification policy set Ringer mode Ringer mode set Ringtone get Ringtone set Screen brightness set Screen brightness Screen off timeout set Screen off timeout System language get System language set System property get System setting get System setting set Wallpaper image set Wallpaper live set Telephony Call answer Call end Call incoming Call number Call outgoing Call state Cell signal strength Cell tower near Cell tower pick Dial number Mobile network preferred Mobile network preferred set Mobile operator Mobile service state Subscription pick Ringer silence Roaming USSD request
https://w.atwiki.jp/vocaloidenglishlyric/pages/241.html
【Tags A Akuno-P Len Rin tC tE tR tT Meiko】 Original Music Title 悪食娘コンチータ English music title Evil Food Eater Conchita / Conchita, The Epicurean Daughter of Evil / Repulsive Eater Conchita Romaji music title Akujiki Musume Konchiita Music Lyrics written, Voice edited by mothy \ 悪ノP(Akuno-P) Music arranged by mothy \ 悪ノP(Akuno-P) Main singer MEIKO, Chorus 鏡音リン (Kagamine Rin), 鏡音レン (Kagamine Len) This song is inculded in "Seven Deadly Sins (Nanatsu no Taizai) series" by Akuno-P. Click here for the Japanese Lyrics English Lyrics (translated by motokokusanagi2009): The Apostate Castle smells rotten The Last Supper begins as always Gruesome foods on the table A woman eating them up alone with a smile Her name is Vanika Conchita She was once an opsomaniac And then she went farther than that, The ultimate level of the baddest foods Respect her, honor her Our great Conchita All foods in this world are for her Eat them up, every bit of the world More room for foods in her The shining pale blue deadly poison Is the best spice for main dishes Eat up right down to the bone If it's not enough, bite into the dishes Total bliss on her tongue The supper is not finished yet ["- Today's Breakfast - juice, 16 kinds of weeds mixed cornflakes, contains a lot of iron only poison mushroom soup salad, cooked capriciously by the chef special brioche by the butler assorted off-season fruits unable-to-wake-up-again coffee (low calorie)" "- Today's Lunch - grilled leek and raw leek salad with big leek pink octopus Carpaccio, tastes like the Queen Japanese style grilled eggplant w/o Gackpo bread, baked whatever by the maid special sweet potato icecream by the chef self-made Hi-Potion (McDonald's milkshake mixed)"] The 15th personal chef of this year He asked me "Could you let me take holidays, my lady?" I have to say they are all useless Respect her, honor her Our great Conchita Betrayers have to pay the price For what they do Eat them up, every bit of the world Today's menu is really special The shining pale blue hair Works out perfectly for salad hors d'oeuvres Eat up right down to the bone If it's not enough, just have "another" Oh, my butler, over there What does "you" taste like? ["- Today's Dinner - salad of the chef cooked capriciously Vermicelli pasta, really long and thin assorted (censored) muddy Galette, tastes like the Road Roller (censored) soup bloody red wine, well it's blood" "- Today's Fourth Meal - (censored) (censored) (censored) (censored) (censored)"] And then the castle was deserted Nothing left there, anyone else but her Even so, she wanted more, The ultimate level of the baddest foods "If I don't eat them up, I'll get scorched." Eat them up, every bit of the world She gazed at her right hand And smiled amiably "There's more to eat." The baddest food for Conchita It was...Yes, it was herself Now she knows all the tastes in the world But nobody knows what "she" tasted like ["-Cast-" Our great Conchita Meiko Stupid butler Len Wicked maid Rin Useless chef Kaito "-Staff-" Lightning and props maker Miku Stylist Luka Choreman Gackpo "-Sponsor-" (foods) Hatsune Agricultural Associations Megurine Fishing Associations (location) Foundation Yellow Country] Romaji lyrics (transliterated by motokokusanagi2009): fuhsū tadayou haitoku no yakata kyō mo hajimaru saigo no bansan minoke mo yodatsu ryōri no kazu kazu hitori kui asaru onna no egao kanojo no namae wa Vanika Conchita katsute kono yo no bishoku o kiwameta sono hate ni kanojo ga motometa nowa kyūkyoku ni shite shikō no akujiki uyamai tamae yo warera ga idai na Conchita kono sekai no shokumotsu wa subete ga anata no tame ni aru kurai tsukuse kono yo no subete ibukuro niwa mada mada aki ga aru ao jiroku kagayku mōdoku main dish no spice ni saiteki♥ hone no zui made shaburi tsukuse tarinakereba sara nimo kaburi tsuke shitasaki o kake meguru shifuku bansan wa mada mada owaranai kotoshi ni haitte jūgo nin me no okakae kokku ga kō itte kita "soro soro ohima o morae masen ka?" mattaku tsukaenu yatsura bakari ne uyamai tamae yo warera ga idai na Conchita uragiri mono niwa mukui o ukete itadaki mashō kurai tsukuse kono yo no subete kyō no menu wa tokubetsu sei nano ao jiroku kagayaku mōhatsu hors d'oeuvre no salad ni chōdo ī♥ hone no zui made shaburi tsukuse tarinakereba "okawari" sureba ī chotto soko no meshitsukai san anata wa donna aji ga suru kashira? itsushika yakata wa monuke no kara ni nan nimo nai shi daremo mō inai sore demo kanojo wa motome tsuzuketa kyūkyoku ni shite shikō no akujiki kurai tsukuse kono yo no subete kanojo wa mizukara no migite o mite soshite shizuka ni hoho enda "mada taberu mono aru ja nai" Conchita no saigo no akujiki shokuzai wa sō kanojo jishin shoku o kiwameta sono karada no aji oshiru mono wa sude ni inai [mothy, Akuno-P, AkunoP]
https://w.atwiki.jp/soscomp/pages/225.html
APIキーの取得 取得しる 使ってみる サンプルプログラム 5行目のyourkeyの部分を自分で習得したキーに置き換えてください。 !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http //www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" html xmlns="http //www.w3.org/1999/xhtml" head title Google Maps JavaScript API Example /title script src="http //maps.google.com/maps?file=api v=2 key=yourkey" type="text/javascript" charset="utf-8" /script /head body div id="map" style="width 500px; height 450px" /div script type="text/javascript" // ![CDATA[ if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(35.170686195072136, 136.88162326812744), 10); } function myOpneInfoWindow(msg, lat, long, zoom){ //alert(lat); //alert(long); map.setCenter(new GLatLng(lat, long), zoom); map.openInfoWindow(map.getCenter(),document.createTextNode(msg)); } // 緯度, 経度 //]] /script a href="javascript myOpneInfoWindow( ちた屋 , 34.75197530417364, 136.91148430109024, 18)" ちた屋 /a br / a href="javascript myOpneInfoWindow( 中京大 , 35.138721391798065, 137.14971542358398, 13)" 中京大 /a /body /html 開発支援 http //www.toofactory.org/~mochi/gmap/GoogleMap上の座標の位置を取得する 参考 名前 コメント このページへのアクセス数 total - today - yesterday - このページのタグ一覧 GoogleMaps JavaScript Web開発 Webアプリケーション
https://w.atwiki.jp/uo_house/pages/137.html
スタジオSIM-2 【コメント】 結婚式の、2次会場として計画しました。 お日様の下、心地良い風を感じながら和やかな時間の流れる2次会場、というイメージなので露天になってます。 主役の二人がお客様に良く見える様、階段席を採用。 アーチで神聖な雰囲気を、間に蔓バラ這わせて華やかさを演出。 主役席には燃えるハートを添えて。 (所々に吊り下げたベルは、見えないとこに風鈴を仕込んで、実際に音が鳴る様にする予定でした。) 階段席の間にある雪だるまは、司会者席です。 UOHE File ver 1.00=sim-2===================================================== hSAecWLVN/0WHBx395nZB/WemGXpgaQg4DJ4V5XLOqnr2AyyBH+IQJV9QTv0/FSyhKlK9sJ+DsFq qi0eI3SSVLt9SVv3LRRoeiYO2wXhQkAqAJIctx93srtxNoK1coSPPenZn93OzvZnRkWxCpel1b0X gqam2TdyRRlLwqmRm6kfp9q/eqTS8f/TV1KgV1K1qc2rsg+/Ly/ikBi77k6ndCU/kgdgk9ARyY+s lEqjlwi6h1/gF4gZXtbh/03t1fL6YHHV9AB7hiLB/1uFoWlrWnr+OP1a6FbxJLrV34T4n9LQtJnd 7zzeKXlVyGoT2GcWOp6IJZcTtxeDreK85btYPTv3xw0jtaBeOx56CRUr9462t7094yKnvFSvb3rC lCLb1SSYJch8tkm2pgIcBRkCipKLIAaf8LOUgCLEBsevjlqCill8Y93JDBcO6an8cdp8GU599Wsd 4sb0PrkckCyAVcnkxdSH3Zq4OwrG4GtsY24OzpBaDdStOF/qhHkN8gquip2xnMuPXZ3eArvIGci0 XkaQVIvNiV7I4X0y5tf7+iA4yCGkYgVMMlmLqh4z9R0hQPE7FcVBZR1MLZrppDljibQ9CdMslmzO UznbzZ3sWWQq7RRCl7snTAw+8Yj+PTvSWUCxyKDlVO6xyATsA+BEvChSvhz+a5RgJqnjg/aeI71U BOzRyJ62lCffNnhT57gz/aWoFvzA23LWLdNwYvPKoC1P2GRwlFpJGSz0lFT1YdDWnA6T80cUJBuN necnGXYJRSgqWqg9mUhUdbXmX/6o4xhCz+AnULKhUuocCQZVCsyAUxrEC7Z8qlS5k6nJFWWYlskI cJRafHIp0335sWMqgkJ8bNn8yLKTnTmFoHiehaV7JZRRjF60oSAeLISXSbukYKAUTL+3sbWgLa8F RU2Xn4pYGydN6QSvOQNJzptCgTaQklEz670sKVLbyybkzGHoe8hCRyV40tmsoomU3anBdbTexhUD 0J6DDblX36UhrAJQB75phBHItsbX0tb6eczYezRzUQhopPqA1ssCHVN17Fy4PZZTNw0qnolDFy0U RXyxyRQbAWMD9gFLQFomqeMgR1sFrC/SUPj+sNQbFetbyEyHShMK/T+FDuA68mr2Yx6zEzo2mrQH 3eaZj5lQq9jeDTIiZebwvCmtuFMtDPYUQAmZe0QrIgYiYm6RjwgWb6X8NGSQNeEG7yvy9i9h3of1 Byg0JcLq+sWpBC7bun14f5N7vsaaM5AG3lrnacoEyvGO/VISXQ9Re09vgaaibZfsXyO8J3Q8UU3N sDvBPT76id3nXKVBcJBhyc6BmnmVZPsTYMd5Wu5oIVPJJHQZEipvjldCnw+0uhS6YnVi1w52e0Fg FzdMH69Q63mVegfGWfdy+hh6IuTH+Oxe0Fm9WumULDxX1Y9r3qaWvz+RkUzyV1jJXHH9ZNNplstH vO1c16Ewb5Tyo+m1U6eqj1P63o+TdJ+PoSeeUpDqV21G0nZXu9L9tPxvto+jhJP7yH/uJ0OvDPLC DVC3A4tx+E3NRwlT4mFoWEcJVgg6yQ9XJ1t533A88m/mzc+5N/Vt6fDoVkl7 ============================================================================ [← UOHEデータ集-洋風 へ戻る]
https://w.atwiki.jp/api_programming/pages/170.html
http //developer.garmin.com/connect-iq/programmers-guide/ios-sdk-guide/ Garmin Developers Connect IQ SDK 大まかな流れ(想像) URLスキームで、元のアプリケーションにメッセージを送る ミュージックアプリを動かす場合 iOS SDK Guide iOS用のモバイルSDKを用いて、ガーミンウェアラブルデバイス上で動作するMonkey Cアプリケーションと連動するiOSアプリケーションを製作できます。 リモートデータを取得したり、ウェアラブルデバイスからiOSデバイスにresource-intensive tasksを読ませることでfeature-richなユーザーエクスペリエンスを構築することができます。 このガイドはMobile SDKにiOSプロジェクトを加え、SDKのAPIやあなたのMonkey Cアプリケーションとの通信方法を紹介するものです。 メモ:iOSプロジェクトを作成するためのメモであって、Garminデバイスから通信するためのメモではない? Configuring a Project To Use the Mobile SDK フレームワークをプロジェクトに加えるiOS用のモバイルSKDは、iOSフレームワークパッケージとして配布され、iOS SDKの中に見つけることができます。まず、Xcodeにおいて、ConnectIQ.framework をプロジェクトのフレームワークグループにドラッグします。 Add the bundle to the project.iOS向けのモバイル SDK はそのSDKで使われるリソースにバンドルされて配布されており、iOS SDK の中に見つけることができる。SDKがこれらリソースにアクセスできるように、SDKのフレームワークを参照するプロジェクトに加える必要がある。ConnectIQ.bundle ファイルをXcodeの適切なファイルに加える。 (e.g. Resources or Supporting Files). リンク依存をフレームワークに加えるTo allow a project to build with the Mobile SDK, add a linker dependency to the framework for each of the project’s targets by adding an entry to the Target Build Phases Link Binary With Libraries panel. バンドルリソースをコピーするSimilarly, in order for the resources inside the bundle added in step 2 to be available at runtime, they must be copied to the target’s resources at build time. This can be accomplished by adding an entry to the Build Phases Copy Bundle Resources panel. 必要なリンカフラグを加えるThe Mobile SDK for iOS utilizes category methods internally. When importing a library that uses category methods, an additional flag must be specified to allow the library to be linked correctly. To do this, add the –ObjC flag to the Target Build Settings Other Linker Flags setting. URL scheme を登録するAndroid用のモバイルSDKと違い、iOS Mobile SDK を用いて作られたアプリはスタンドアローンであり、GCMに直接は依存せず、デバイスと通信する。しかし、GCMは必要となり、最初に通信のできるConnect IQ-compatible devices や Monkey C アプリがインストールされたデバイスをさがすのに使う。アプリとGCMは iOS の URL スキームを通してお互いをの情報を交換する。 To facilitate this, a URL scheme that GCM can send data to must be registered by the app. To do this, add an entry to the Target Info URL Types panel. A string that is not likely to collide with any other apps on the iOS device should be chosen. See the Apple documentation for more information on custom URL schemes. Set background execution mode (optional).The iOS system allows apps that communicate with Bluetooth devices to be woken up to execute in the background when a connected device has data to send. This can be useful for companion apps that process requests for their respective Monkey C applications on a wearable device. To enable this behavior, turn on the Uses Bluetooth LE accessories option in the Target Capabilities Background Modes panel. SDK を初期化する All interaction with the Mobile SDK is done through the ConnectIQ class. This class must be initialized during app startup with the project’s URL scheme and a UI override delegate. Typically this is done within the app delegate’s application didFinishLaunchingWithOptions method. [[ConnectIQ sharedInstance] initializeWithUrlScheme @"exapp-123456" uiOverrideDelegate self]; URLスキームは Configuring a Project To Use the Mobile SDKのStep4 で選んだもとの同じ文字列を選ぶ必要がある。 The URL scheme should be the same string chosen in Step 4 of When invoking a method of the ConnectIQ class that requires GCM to be installed and it is not present on the iOS system, by default an alert dialog will be shown to users that allows them to go to the Apple App Store page for GCM to install it. By passing an instance of an object that conforms to the IQUIOverrideDelegate protocol here, custom behavior or a specialized UI may be specified in this case. To use the default alert dialog and behavior, pass nil. Implementing a UI Override Delegate If a UI override delegate was specified and an action was performed that requires GCM to be installed, the ConnectIQ class will call the needsToInstallConnectMobile method on that delegate. The app should inform the user that GCM is required for this action and give the user the option to open the Apple App Store page for GCM or to cancel the action that triggered it. If the user chooses to install GCM, the howAppStoreForConnectMobile method may be called. - (void)needsToInstallConnectMobile { // Show alert to user with choice to install GCM if (alert.result == YES) { [[ConnectIQ sharedInstance] showAppStoreForConnectMobile]; } } Note that this example is synchronous, but if UI is shown to the user, the showAppStoreForConnectMobile method should be called as a result of user input instead of directly in the needsToInstallConnectMobile method. デバイスとの動作 (Working with Devices) Finding Connect IQ-compatible Devices iOS SDK はBluetooth を介して、直接デバイスと通信する。しかし、どのデバイスが使用できるのかを知る必要はある。そのため、アプリケーションは次のメソッドを呼び出さなければならない。 showConnectIQDeviceSelection [[ConnectIQ sharedInstance] showConnectIQDeviceSelection]; This method launches GCM to the foreground and allows the user to choose which paired Connect IQ-compatible devices to share with the companion app. If GCM is not installed and a UI override delegate was set, its needsToInstallConnectMobile will be called. Note that by launching GCM, this method causes the companion app to go into the background, possibly resulting in the app being suspended. The companion app should expect to be suspended when calling this method. Once ユーザーがペアリングしたデバイスにto share with the companion 選択したら、GCM will launch the companion app (via its registered URL scheme), シリアル化された URL クエリアイテムをデバイスのリストとして送信する。The companion app should override its app delegate’s application openURL sourceApplication annotation method to listen for this. The companion app may then call the parseDeviceSelectionResponseFromURL method クエリアイテムをモバイルSDKとして使われるIQDevice オブジェクトである NSArray に展開して – (BOOL)application (UIApplication *)application openURL (NSURL *)url sourceApplication (NSString *)sourceApplication annotation (id)annotation { if ([url.scheme isEqualToString ReturnURLScheme] [sourceApplication isEqualToString IQGCMBundle] { NSArray *devices = [[ConnectIQ sharedInstance] parseDeviceSelectionResponseFromURL url]; if (devices != nil) { [self.devices removeAllObjects]; for (IQDevice *device in devices) { self.devices[device.uuid] = device; } return YES; } } return NO; } Note that in this example, the parsed devices are stored to a dictionary for later use within the app, but are not cached in any kind of persistent storage. To avoid needing to launch GCM excessively to discover devices, companion apps should cache devices to persistent storage. When a list of devices is returned by GCM, companion apps should clear all previously cached references to devices they may have known about. Always use only the latest list of devices that the user has authorized. Listening for Device Events Once the companion app has one or more IQDevice instances from GCM, it may register with the ConnectIQ class to receive notifications when that device’s connection status changes by calling registerForDeviceEvents delegate . [[ConnectIQ sharedInstance] registerForDeviceEvents device delegate self]; The delegate passed in must be an instance of a class that conforms to the IQDeviceEventDelegate protocol. Once registered, the delegate’s deviceStatusChanged status method will be invoked when the device’s connection status changes. The getDeviceStatus method may also be called to get the current connection status of the device. These methods both return a device’s status as an IQDeviceStatus value. A companion app must register to receive device events before calling methods that operate on devices or apps, such as getDeviceStatus or sendMessage toApp progress completion . To stop listening for device events, a companion app may call either the unregisterForDeviceEvents delegate or unregisterForAllDeviceEvents method. [[ConnectIQ sharedInstance] unregisterForDeviceEvents device delegate self]; [[ConnectIQ sharedInstance] unregisterForAllDeviceEvents self]; アプリケーションとの動作 (Working with Apps) Creating an App Instance Apps are represented in the Mobile SDK as instances of the IQApp class. An instance of the IQApp class represents a single app on a single device. This means that in order to work with an app that’s installed on two different devices, a companion app will need two instances of the IQApp class with the same app ID, one for each device. To create an app instance, use the IQApp class’s appWithUUID device method. NSUUID *uuid = [[NSUUID alloc] initWithUUIDString @””]; IQApp *app = [IQApp appWithUUID uuid device device]; Requesting an App’s Status Once an IQApp instance has been created that links an app ID to an IQDevice instance, a companion app may request the status of the app on that device by calling the getAppStatus completion method. [ [ConnectIQ sharedInstance] getAppStatus app completion ^(IQAppStatus *appStatus) { if (appStatus != nil appStatus.isInstalled) { NSLog(@”App is installed! Version %d”, appStatus.version); } } ]; This method communicates with the device over Bluetooth, and therefore is asynchronous. The completion block will be invoked when the device responds, or the request times out. If the request is successful, the completion block will be invoked with an instance of the IQAppStatus class. A companion app may inspect this status to discover if the app is installed on the device, and if so, what the version of that app is. A companion app could then potentially show a UI that recommends that the user upgrade the app on the device. If the device is not currently connected or the request times out, the completion block will be invoked with a nil status. Installing, Upgrading or Managing an App If a companion app determines that an app is out of date or not installed, it may allow the user to install or upgrade that app by launching the Connect IQ store within GCM. To do this, simply call the showConnectIQStoreForApp method. [[ConnectIQ sharedInstance] showConnectIQStoreForApp app]; A companion app may also call this method even if the app is installed and up to date on the device, to allow the user to manage or uninstall the app from the device. Like the showConnectIQDeviceSelection method, by launching GCM, this method causes the companion app to go into the background, possibly resulting in the app being suspended. The companion app should expect to be suspended when calling this method. メッセージの送信 Once a companion app has determined that an app is installed on a connected device, the companion app はその iOS アプリケーションのメールボックスに Bluetooth を介して次のメソッドを使ってメッセージを送る sendMessage toApp progress completion このメソッドはメッセージとしてオブジェクト、送信先として IQApp、そしてさらに2つのブロックを取る。一つはデータ送信状態を定期的に呼び出させるもの、もう一つは転送が終了した場合に呼び出されるものである。 NSArray *message = @[@”hello pi”, @(3.14159)]; [ [ConnectIQ sharedInstance] sendMessage message toApp app progress ^(uint32_t sent, uint32_t total) { float percent = 100 * sent / (float)total; NSLog(@".2f%% - %u/%u", percent, sent, total); } completion ^(IQSendMessageResult result) { NSLog(@"Send message finished with result %@", NSStringFromSendMessageResult(result)); } ]; The message object that is passed to this method is first converted by the SDK into a Monkey C-compatible type, and is then sent to the app’s mailbox on the device. Therefore, only Objective-C types that can be directly translated to comparable Monkey C types are valid. Valid message types include NSString, NSNumber, NSArray, NSDictionary and NSNull. Take advantage of nesting other types inside an NSArray or NSDictionary to form complex messages. Values contained in NSNumber objects will be converted to the most appropriate Monkey C value type on the device. Keep in mind that the wearable devices have limited memory and processing power compared to an iOS device. Messages should be as small as possible. However, sending frequent small messages can incur performance and battery life costs. Therefore, it is more desirable to send occasional large messages than it is to frequently send many tiny messages. Companion apps should aim to balance the costs of memory and performance by sending messages only when necessary and keeping message size to a minimum. Receiving Messages A companion app may register to receive messages that are sent from an app on a device by calling the registerForAppMessages delegate method. This method takes an IQApp to listen for messages from, and an instance of an object that conforms to the IQAppMessageDelegate protocol as the listener. After registering, when a message from that app is successfully received, the receivedMessage fromApp method will be called on the listener. To stop listening for app messages, a companion app may call either the unregisterForAppMessages delegate or unregisterForAllAppMessages method. – (void)viewWillAppear (BOOL)animated { [[ConnectIQ sharedInstance] registerForAppMessages self.app delegate self]; } – (void)viewDidDisappear (BOOL)animated { [[ConnectIQ sharedInstance] unregisterForAllAppMessages self]; } – (void)receivedMessage (id)message fromApp (IQApp *)app { NSLog(@"Received message from app %@ '%@'", app, message); } A companion app may register to receive messages from multiple apps across many devices. However, multiple companion apps should never register to receive messages from the same app. The nature of Bluetooth communication on iOS prevents the Mobile SDK from determining which companion app to deliver the message to. Therefore, undefined behavior will result from multiple companion apps registering to receive messages from the same app. Developer Blog Contact Resources ©2016 Garmin LTD or Its Subsidiaries Terms of Use Privacy Garmin