投稿

5月, 2017の投稿を表示しています

モバイルデータのON・OFFを切り替える機能について

よく、Cronoidのユーザーのかたから、以下の様な問い合わせを受けます。

「設定変更のアクションで、モバイルデータのON、OFFを変更する事はできないか?」

というものです。

古くからのユーザーのかたは、ご存知かもしれませんが、Cronoidでは、以前はこの機能を提供していました。

というか、厳密には現在でも同機能を提供しているのですが、Android のバージョンによって、使用可否が異なります。
Cronoidの仕様 Cronoidとしては、Androidのバージョンが、5.0(Lollipop)以上の場合、モバイルデータのON・OFFの変更は、アクション入力時に選択項目として表示しないようにしています。
そのため、バージョンが、4系のものであれば、同機能を使用することができます。(画面上に選択項目として表示されます)
なぜバージョン5.0以上では使用できないのか? Android OSの仕様変更により、モバイルデータの設定を変更するためのAPIは、システム権限を持ったアプリでないと、使用できなくなってしまったためです。

つまり「設定」のような、システム権限を持ったアプリは、同設定を変更できますが、Cronoidのような、サードパーティのアプリは、システム権限を持つことができないため、モバイルデータの設定を変更するためのAPIを使用することができないのです。
この仕様変更は、恐らく、セキュリティ上の懸念からそうしたものと思われます。

Cronoidとしては、使用不可能な機能を画面上に表示しても意味がないため、Androidのバージョンによって、モバイルデータのON・OFFを選択項目から、非表示にしているというわけです。
元々、非公開のAPIを使用していた モバイルデータのON・OFFの設定変更を行うためのAPIは、Androidとしては、元々公開されているものではなく、privateメソッドとして実装されていました。

privateメソッドに対して、外部から通常通りのアクセスをすることはできないため、リフレクションを使用して、同メソッドにアクセスしていました。(モバイルデータのON・OFFを変更する機能を持つアプリは皆同様の方法で実現していたと思われます)

ConnectivityManager cm = (ConnectivityManager) co…

トリガー変数機能について

イメージ
先日は、Cronoidの変数機能について、以下の記事を投稿しました。

アクションの出力への変数の展開機能について

変数の展開機能で使用可能な変数は、二種類あります。

一つは、トリガーに依存せずに使用できる変数で、もう一つは、トリガー特有の変数です。トリガー特有の変数は、特定のトリガーでのみ使用可能です。

今回は、トリガー特有の変数について、使用方法を書こうと思います。
トリガー変数 トリガー特有の変数を使用するには、タスク作成時に、変数を使用可能なトリガーが選択されている必要があります。

トリガー特有の変数を持つトリガーは、現在(記事執筆時点 2017/5/1)は以下の通りとなっています。
トリガー特有の変数トリガー変数名説明Wi-FiSSIDSSID位置LATITUDE緯度LONGITUDE経度ADDRESS住所バッテリーLEVELバッテリー残量GmailFROM送信元メールアドレスSUBJECT件名アプリ起動APP_NAMEアプリ名SMSFROM_PHONE_NUMBER送信元電話番号
変数と持つトリガーをセットすると、アクションへの変数入力ダイアログに、トリガー変数が表示されます。




















後は、通常の変数と同じように、変数を選択して、テキスト内に埋め込んでおけば、タスク実行時に変数に応じた内容が展開されます。
トリガー変数機能の活用方法 変数機能を使用することによって、アクションの内容を動的に変更する事ができますが、トリガー変数を使用することによって、さらにシーンに応じた柔軟で便利なタスクを作成する事が出来ます。

ぜひ活用してみてください。