2014年1月4日土曜日

XUtilities

XUtilitiesは、小規模なカスタマイズ機能を寄せ集めたXposedモジュールです。 KitKatのストックROMが対象ですが、他の環境でもある程度動作します。

ダウンロード:XUtilities

便利機能満載モジュールといえばGravityBoxですが、どうも自分の好みに合わないため一から作りました。被っている機能もありますが、このモジュール+Notification Toggleのほうが、より私好みです。

更新履歴

1.5.3 beta

  • 不具合修正
  • ログ整理
  • 緊急通報ボタンの誤操作防止機能を追加(二回タップでダイヤルが開くように)

主な機能

省略。ちゃんと日本語なので見ればわかります。

動作環境

Nexus 5、4.4.2、ストックROMで確認。他の環境でもある程度は動くはず。 4.4未満でも動くけど機能は制限されます。

要求パーミッション

CAMERA
FLASHdtGHT
ライト点灯に使用します。
WRITE_EXTERNAL_STORAGE
READ_EXTERNAL_STORAGE
フォントファイルの読み込みに使用します。
SYSTEM_ALERT_WINDOW
トーストを前面表示するために使用します。

ソースコード

https://github.com/75py/XUtilities

ライセンス

Apache License 2.0

2013年9月23日月曜日

無効化マネージャー Playストアでの公開停止のお知らせ

無効化マネージャーのPlayストアでの公開を停止します。

理由

2013年8月23日に更新された、Google Play デベロッパー プログラム ポリシー(「コンテンツ ポリシー」)に抵触する恐れがあるため。

該当箇所

Google Play Developer Program Policies、Content Policies、System Interferenceの項。以下に引用します。

Apps must not encourage, incentivize, or mislead users into removing or disabling third-party apps except as part of a security service provided by the app.

日本語でおkな人向けにはこんな感じ。

アプリは、アプリによって提供されるセキュリティ サービスの一部である場合を除き、サードパーティのアプリを削除または無効にするようユーザーを助長、誘導したり、欺いたりしてはなりません。

本当に抵触してるの?

知りません。その恐れがあると私が判断したので公開を停止しました。

ダウンロードしたい方へ

野良アプリとしてAPKファイルを公開しますので、ご自由にダウンロード・インストールしてください。

インストール方法については各自でお調べください。

DisableManager_v1.3.3.apk

2013年9月8日日曜日

XVeilView for Aquos Phone

シャープ端末向け、ベールビューを制御するショートカットを作成するXposedモジュールです。要root。

インストール後、当モジュールを有効にして再起動すると、ショートカットが機能するようになります。

ダウンロード

Xposed Installerのダウンロード機能から。直リンク

動作確認

  • SH-02E(docomo, 4.1.2)

他の端末で動作するかは確認していません。たぶん4.0.3以上のシャープ機なら動く、かも。

注意

Do it at your own risk.

ソースコード

https://github.com/75py/XVeilView

2013年4月7日日曜日

無効化マネージャーのアイコンについて

無効化マネージャーは、ココナラというサービスであおきゅーさんにお願いして作ってもらいました。私としてはかなり気に入っています。アイコンがいい加減なものだったらここまでDL数は伸びなかったでしょう。

私のように絵心のないアプリ開発者には嬉しいサービスです。ふわふわした要望もうまーく形にしてもらえます。興味のある方はぜひ問い合わせてみてください。

なお、あおきゅーさんによりますと、ココナラでのサービスはお試し版のような位置づけだそうです。まずはココナラを利用してみると良いかと思います。

ライセンスについて

無効化マネージャーは勉強も兼ねてソースコードを公開しています。アイコンもそこにアップロードしていますが、お金を出して作ってもらったものです。アプリレビュー等で使う場合はもちろん構いませんが、他のアプリのアイコンとして使うなどの無断転載はしないでください。

2013年3月14日木曜日

無効化マネージャー ヘルプ(インポートとエクスポート)

v1.2.0で追加したインポート・エクスポート機能に関するヘルプ記事です。

「同じ端末買ったんだけど、どれを無効化すればいいの」という友人の言葉から作られた機能だったりします。

機能概要

除外リストのインポート・エクスポート

  1. 「無効化不可能なのに無効化可能リストに表示されるアプリ」を見つけたら、長押しで除外リストに登録する。
  2. 無効化すると不具合が生じるものを、その旨コメントを付けた上で除外リストに登録する。
  3. 一通り作業を済ませたら、除外リストをエクスポートする。
  4. 作成されたXMLファイルをどこかにアップロードし公開する。
  5. 同じ端末を使う人がそのファイルをダウンロードしてインポートすると、最初の人の成果をそのまま読み込んで除外リストに登録できる。

無効化推奨リストのインポート・エクスポート

  1. 無効化作業を終えた人が、自分の無効化済みアプリ一覧を「無効化推奨リスト」としてエクスポートする。
  2. 作成されたXMLファイルをどこかにアップロードし公開する。
  3. 同じ端末を使う人がそのファイルをダウンロードしてインポートすると、リストにあるアプリを「まだ無効化していないアプリ」「既に無効化されているアプリ」「自分が既に除外リストに登録しているアプリ」に分けて表示することができる。

このように、既に無効化を一通り済ませた人がファイルをエクスポートしそれを公開することによって、同じ端末の所有者が効率よく作業を済ませることができます。

「初期化したいんだけど無効化し直すのが面倒……」という場合にも、初期化前にエクスポートしてPCやmicroSDに避難させておけば、初期化後の作業をあっという間に済ませることが可能です。この場合はバックアップというニュアンスになりますね。まぁやることは同じです。

注意

上記の流れを完成させるためには、自力で行った作業を無償で提供してくれる協力者が必要になります。情報を提供してくれる人はあくまでボランティアですので、その点に十分留意してください。提供者がいればラッキー、くらいに思ってください。

また、無効化作業が自己責任であることはアプリの説明文で述べていますが、インポート機能を使った場合も同様です。

エクスポートされる情報

  • 端末の名前
  • ビルド番号
  • エクスポートした種類(除外リスト、無効化済みリスト)
  • パッケージ名
  • 各アプリのコメント

当然ながら個人情報は含まれませんのでご安心ください(どうしても気になるようなら、テキストエディタ等でXMLファイルを開いてみてください。ただのテキストなので簡単に読めます)。

端末名を保存しているのは、別の端末のファイルを誤ってインポートしてしまうことを防ぐためです。確認ダイアログが表示されますが、OKを押すことでそのまま読み込んでしまうことも可能です。同メーカー・同キャリアの端末のものならある程度共通部分がある可能性はあります。

ビルド番号は、まあ一応バージョンアップで変わることもあるかな、という配慮です。同じくダイアログでOKを押せば無視できます。

種類ってのは、無効化推奨リストなのか除外リストなのか、ってやつです。無効化推奨リストを誤って除外リストとして読み込むと面倒なことになるので、それを防ぐためです。

読み込んだ後は、読み込んだパッケージのうちインストールされているものだけを抜粋し、「無効化可能」「無効化済み」「除外アプリ」の三つのタブを表示します。

コメントのインポートについて

アプリ一覧と同様に、エクスポート対象のアプリにコメントがついていればそれもエクスポートします。

インポート後の画面では、XMLファイルに含まれているコメントのみが表示されます。なお、インポート後の画面でもコメントを編集できますが、これは特に保存されるわけではなく、画面から離れると全て削除されます。無駄なことをしてしまわないようご注意ください。

除外リストのインポートについて

無効化推奨リストはその場で使ってすぐ破棄する情報なので特に問題はありませんが、除外リストは読み込むと保存されます。これが馬鹿みたいにたくさんになってくると処理が重くなってくる可能性がありますので、あまりたくさん読み込みすぎないようにしてください。

アップローダー

手軽にアップロードできるように、用意しました。ご自由にどうぞ。

エクスポートしたXMLファイルまたはそれをまとめたzipファイルをアップロードしてください。

無効化マネージャー XMLアップローダー

エクスポートしたファイルのサンプル(for SH-02E)

僕が所有している分です。サンプルも兼ねて公開します。

2013年2月25日月曜日

SharedPreferencesのgetStringSetを使う場合の注意

SharedPreferencesはAPI11からSetを保存できるようになりましたが、こういうことをすると、一見上手くいっているようで上手く保存できなくなります。

/**
 * @return 保存したコレクション
 */
public Set getStringSet(){
 return sp.getStringSet(KEY, new HashSet());
}

/**
 * @param str 追加または削除する文字列
 * @return 保存に成功すればtrueを返す
 */
public boolean updateStringSet(String str){
 Set set = getStringSet();
 if(set.contains(str)){
  set.remove(str);
 } else {
  set.add(str);
 }

 return sp.edit().putStringSet(KEY, set).commit();
}

一見うまく動くんですが、プロセスが殺された後再度起動すると、前の値が保存されていません。しょぼーん。

色々試してみましたが、getStringSetのところでディープコピーすると正常に動作しました。

/**
 * @return 保存したコレクション
 */
public Set getStringSet(){
 Set saved =  sp.getStringSet(KEY, new HashSet());
 HashSet returnSet = new HashSet(saved.size());
 for (String str : saved) {
  returnSet.add(str);
 }
 return returnSet;
}

あんまりスマートではないけど、まあ解決したのでおっけー。

2013年2月24日日曜日

無効化マネージャー

無効化マネージャーをGoogle Playで公開しました。プリインストールアプリの無効化を補助するアプリです。

ダウンロードはGoogle Playからどうぞ→無効化マネージャー

機能

  • 無効化が可能で、まだ無効化されていないアプリの一覧を表示する
  • 無効化されたアプリの一覧を表示する
  • 無効化が不可能なシステムアプリの一覧を表示する
  • ユーザーがインストールした一般アプリの一覧を表示する
  • 表示中のアプリ一覧をメーラーなどに共有する
  • 一覧画面でアプリをタップすると設定画面に飛ぶ
  • 各アプリにコメントをつける
  • 実行中のプロセスのみ表示する
  • 変更日で表示・ソートする
  • 除外リストのインポート・エクスポート
  • 無効化済みリストを無効化推奨リストとしてエクスポート、そのファイルを別端末でインポートし無効化済み・無効化可能に分類して表示
変更日で表示・ソートする

v1.1.0で追加した機能です。無効化可能アプリ・無効化済みアプリについて、有効・無効を切り替えた日時を保存し、最近変更したものから順に表示できます。(設定>一般から変更可能)

既に「これとこれを無効化するといいよ!」っていう情報が出そろっている端末利用者にはあまり必要ないと機能だと思います。情報のないフロンティアが広がる端末を購入した際に、これを使ってちょっとずつ無効化を試していくと便利かなと思います。何か不具合が出たら、最近無効化したものから順に戻していけばおっけー、となります。

注意点があります。この機能は、v1.1.0以降の無効化マネージャーから「無効にする」ボタンを押しに行った場合のみ有効です。OSの標準機能ではないため、無効化マネージャー以外で行われた操作については検知できません。

実行中プロセスのみ表示について

実行中のプロセスを含んでいるアプリのみ表示するようになります。この機能を使うと、無効化を効率よく行えます。

ただし、無効化済みアプリについてはチェックの有無に関わらず全て表示されます(v1.2.3以降)。これは、チェックを入れたまま無効化作業を続けた後、有効に戻す際に迷子にならないようにするためです。

インポート・エクスポート機能

別記事にありますのでそちらをご覧ください。無効化マネージャー ヘルプ(インポートとエクスポート)

使い方など

起動すると、アプリ一覧を作成します(環境によってかかる時間に差があります)。最初は「無効化可能アプリ」の一覧が表示されます。

アプリをタップすると設定画面に飛びます。無効化したいアプリを選んで、「無効にする」を選択してください。

無効化済み、無効化不可、通常アプリの一覧も表示できます。

表示中リストの中身をメーラーなどに共有する機能があります。一通り無効化作業を済ませたら、無効化済み一覧を共有すると同じ端末を使っている人が喜ぶかもしれません。

共有のフォーマットは、「アプリ名」「パッケージ名」「両方」に加え、カスタムフォーマットが使用可能です。設定画面からフォーマットを変更できます。

アプリを長押しするとコメントを追加することができます。カスタムフォーマットを使えばコメントも共有できるので、無効化の弊害など特筆事項を記入して共有すると良いかもしれません。

無効化可能アプリの判定には、公開されているAndroidのソースコードの一部を使用しています。しかし実際に売られている端末は、キャリアやメーカーによって独自実装が施されている場合があり、確実に全ての端末で判定できるということは保証できません。既にSH-02Eにおいて、一部のドコモアプリが、無効化できないにも関わらず無効化可能アプリとして表示されてしまうのを確認しています。そういったアプリを見つけた場合は、手動で除外アプリに登録してください(長押し→「除外アプリに登録」)。

メニューから、「実行中のプロセスのみ表示」の設定を切り替えられます。このモードで表示される無効化可能アプリを無効化するのが一番効果的です。

v1.3.0で、長押しメニューからGoogle先生に飛ぶ機能を追加しました。そのアプリのアプリ名やパッケージ名の検索画面を開きます。私が個別アプリについての質問にお答えすることはできませんが、Google先生なら何かわかるかもしれません。

諸注意など

このアプリは、OS4.0.3以上対象、非rootユーザー向けです。アプリの無効化はAndroid(ICS以上)のOS標準機能です。

アプリの無効化は自己責任で行ってください。無効化可能アプリの中にも、無効化すべきでないアプリは存在します。

要求パーミッション

  • SDカードの読み込み・書き込み

除外リスト、無効化推奨リストのインポート・エクスポートに使用します。(v1.2.0以降)

動作環境

OS4.0.3以上で動作可能です。4.0.3、4.1.2、4.2のエミュレーターで動作確認をしています。

翻訳

Crowdin.netはオープンソースの場合無料で使えるとのことだったので、試してみました。

Source languageは一応Englishですが如何せんpoorなので、英訳の直しも大歓迎です。

Disable Manager Translations - Crowdin

ソースコード

以下のURLで公開中です。勉強も兼ねて作っています。ライセンスについてはREADMEをご覧ください。

https://github.com/75py/DisableManager

アイコンについて

ココナラというサービスであおきゅーさんに作っていただきました。絵心のないアプリ開発者には嬉しいサービスです。詳しくは別記事をどうぞ。無効化マネージャーのアイコンについて

今後の更新予定

  • 無効化済み一覧のインポート・エクスポート機能v1.2.0で実装
  • 一覧画面を、横スワイプで隣のタブに移動できるようにする

更新履歴

  • v1.3.1(2013/05/19)
    • XMLインポートのファイル選択の際、特定条件下で強制終了するバグを修正
  • v1.3.0(2013/04/29)
    • 長押しメニューに「検索」を追加
  • v1.2.3 2013/04/07
    • 「実行中プロセスのみ表示」のチェックの有無に関わらず、無効化済みアプリが表示されるように変更
    • 更新後、変更内容を表示するように
  • v1.2.2 2013/03/31
    • スクロールの際つまみが表示されるように変更
    • 実行中プロセスの表示形式を変更
    • 変更日によるソートの修正
    • 初回起動ダイアログでバックキーを無効に
    • アプリのテーマをDeviceDefaultからHoloに変更(一部端末での配色の乱れを修正)
    • メモリ不足による強制終了を抑制
    • その他強制終了するバグの修正
  • v1.2.1 2013/03/19
    • ファイル選択ファイアログで長いファイル名は複数行になるように修正
    • About画面にCrowdinへのリンクを追加
  • v1.2.0 2013/03/14
    • 初回起動時に確認ダイアログが出るように変更(一度OKを押せば二度と出ません)
    • 除外アプリのインポート・エクスポート機能を追加
    • 無効化済みアプリを無効化推奨リストとしてエクスポートできるように
    • 無効化推奨リストをインポートできるように
    • インポート・エクスポート機能追加のため、新たに以下のパーミッションを追加しました。
      • SDカードの中身の読み込み
      • SDカードへの書き込み
      (読み込みは将来的に追加されるパーミッションのため、現在は表示されないと思います)
  • v1.1.0 (2013/03/06)
    • 無効化可能アプリの有効
    • 無効を切り替えた際に日時を保存
    • 保存した日時を表示する
    • 最近のものから順に表示する
    • 表示とソートを有効にするかを切り替える設定項目を追加
  • v1.0.1(2013/02/25)
    • 除外アプリ一覧が正常に保存されないバグの修正
  • v1.0.0(2013/02/24)
    • Google Playで公開開始