掲示板

【完成度を高めたい】iOS 通信量をチェックするショートカットを作成してみました

金曜日__22_3月_2024_17_34_32.png

さとさんの「月末に消えるパケット量を通知するショートカット公開 iPhone用(設定手順あり)」スレ(https://king.mineo.jp/reports/267545)に触発されて自分でも何かショートカットで作りたくなり、通信量をチェックするショートカットを作成してみました。

「iPhoneが計測した通信量(現在までの合計)」と、「1日あたり通信できる量×今日までの日数の通信量」を比較し、何MB余裕があるか(または何MBオーバーしているか)を通知してくれるショートカットです。
※1日あたり通信できる量は契約ギガ数(MB単位)÷30で計算。

僕は10GB(10000MB)プランを契約しています。
今日は22日なので「1日あたり通信できる量×今日までの日数の通信量」は7326MB。(小数点切り捨ててます。)
そしてiPhoneが計測した通信量(現在までの合計)は8.97GB(8970MB)。

この2つを計算にかけて、1644MBオーバーしている通知を出している様子がこの画像です。

https://www.icloud.com/shortcuts/89aaa074e89c489babf7452ad323d8e0

こちらがこのショートカットなのですが、まだまだ問題点や改善出来るであろう点があるので完成度を高めるためにお力を貸していただけませんでしょうか。(ショートカット内にある「計算式が数字*333」の333は任意の値(1日あたりの通信量)に変更してください。例えば5GBプランの場合、1日あたりの通信量は166MBです。)

以下、現段階で把握している問題点や疑問点など

・「◯MB余裕あります」または「◯MBオーバーです」の通知が表示されないことがある。(何回かやれば表示されるのでショートカットのバグだと思われるが、プログラムの設計ミスかも知れない。)

・全ての機種や環境で使えるのか不明(iPhone 11およびiPhone SE (第2世代)・iPhone 8で動作確認。11とSEはデュアルSIM環境。)

・モバイル通信の画面でスワイプしていると「iPhoneが計測した通信量(現在までの合計)」を取得できず正しく動作しない

・iPhoneが計測した通信量(現在までの合計)がGB未満(MB)や100GB(10GBかも?)超えだと正しく動作しない(数値を1000倍するプログラムを利用しているため。改善の余地があるかもしれない)

・iPhoneが計測した通信量(現在までの合計)を利用しているため、計測の誤差や低速モードのオン・オフなどで実態に合わない場合がある(通信事業者のアプリなどからデータを取れれば確実だが、通信事業者ごとにデータ量が表示されている場所や表示方法が違うので、通信事業者毎にプログラムを最適化する必要がある。)

・毎日1日リセットでないSIMを使っている場合(日本通信SIMやHISモバイルで月途中に開通した場合など)、誤差が発生する(日付のデータを弄れば改善の余地ありそう)

こうすればいいぜ!みたいな案がある方はぜひコメント…というより僕が作ったショートカットを編集してアップしていただけるとありがたいです。


11 件のコメント
1 - 11 / 11

IMG_7782.jpeg

試しました。
現在のデータ使用量が、私の環境では取得できません。
画面は上図で、切り取った後の画像が下の部分です。
デュアルSIMだとズレるんじゃないでしょうか?

どう直すかは、私の想像では、全画面の文字列を改行で配列にして、
現在までの合計からBまでを抜き出すと行けるかなー

実際作る暇が今日はなく、案だけですみません。
あと日付を取得する所、今は日付フォーマットを「長い」にされていますが、これをカスタムにして「dd」形式で一発で取れますよ。
下はサンプルです。
https://www.icloud.com/shortcuts/1c4130fbe7ca40109447bb33058c1262

>> さと さん

あ、ヤマ06さんもデュアルSIMなので、単純に画面サイズの問題ですかね?
私はiPhone 15 Pro Maxです。
画面カットするなら、幅はスクショの横幅分は必要だと思います。

でも画面カットしなくても、画面上から文字列を全部拾って、正規表現で
「現在までの合計」
で始まる行の8文字目以降を得たら行けると思います。
また明日以降にサンプル作ってみます。
ヤマ06
ヤマ06さん・投稿者
マスター

>> さと さん

コメントありがとうございます。
やはり、画面サイズによって動作しないことがありましたね。
座標の取り方とか正規表現とかの知識が僕にはなく、お時間取らせてしまって申し訳ないです
私の環境では、画面スクショ全体をのOCRをした場合、通信容量が文字として読めたり読めなかったり、都度いろいろ変わります。
多分、文字色がその部分だけ薄いからかな、と推測。
難しいですね。
ヤマ06
ヤマ06さん・投稿者
マスター
mineoアプリとは難易度がけっこう違いそうですね。どうしたものか
今試していますが、画面の右下1/4の面積だけ切り取って、文字読み取りをしたら、私の環境では上手く行きます。
他の人の環境ではダメかも知れませんが…
後でショートカットを共有しますね。
■今回私が手を加えた所
・現在日の「日」だけ取る時フォーマットを「dd」にする
・スクショの右下四分の一をカットする
・計算式を変数にセットして、見た目をわかりやすくしました(弱酸性ぷーちんさんの真似)

---
■他に変更した方が良い事
・今一律に「*1000」としている所は動的にした方が良いです。理由は、iPhoneの設定画面では「MB」の時と「KB」の時と「GB」の時があるからです。

・今「何何B」となっている所から数値を抜き出ししていますが、この前弱酸性ぷーちんさんがされていたみたいに、外字を英数字に直すルーチンをかました方が良いかも知れません。(端末によっては必要になるかも)

・あと私なら、最初の起動時に契約容量の入力を要求します。入力値から動的に計算します。
・さらに、メモ帳などに契約容量を保管して、毎回入力しなくて良いようにしたらどうかな、と思いますが、面倒なのでそこまで今日は作り込みしていません。
書き忘れました。
あと一カ所私が手を加えた所は、

以下の条件文の入れ子になっている所の入れ子を外しました。理由はこのままだと両者の数値が同じ場合、何の処理もされず抜けてしまうからです。

■もし「1日あたりの通信量×日数」が「iPhoneが計測したデータ量」より小さいなら
■その他の場合
  ●もし「1日あたりの通信量×日数」が「iPhoneが計測したデータ量」より大きいなら
  ●if分の終了
■if分の終了
ヤマ06
ヤマ06さん・投稿者
マスター
勉強になります
コメントするには、ログインまたはメンバー登録(無料)が必要です。