Hatena::ブログ(Diary)

popokannのgdgd開発日記 このページをアンテナに追加

2013-09-28

WX04SHテストアプリ第三弾を三種類

WX04SH PDX mode

PDXメールの送受信用の設定(Wi-Fi:off, データ通信(PHS):on, データ通信:on)に一括設定する。もう一度起動すれば起動前の状態に戻る。起動中は通知アイコンが出て、通知の詳細表示をタップしても解除可能。画面無し。
http://www.casraq.com/WX04SHPDXMode.apk
新しいバージョンをこちらのエントリ内からダウンロードしてください。(WX04SHPDXMode_2nd.apk+α)
id:goriponsoft さんが実機での画面キャプチャをアップしてくださいました! ありがとうございます!!
f:id:popokann:20130929001009p:image:w240f:id:popokann:20130929001011p:image:w240f:id:popokann:20130929001010p:image:w240

PHS data switch

「データ通信(PHS)」のOn/Offを起動する度に切り替える。「データ通信」や「Wi-Fi」の設定にはノータッチ。画面無し。
http://www.casraq.com/PHSDataSwitch.apk

WX04SH mode select

Wi-FiPHS3Gの組み合わせ6通りを手動切替。見れば分かる簡単操作です。
http://www.casraq.com/WX04SHModeSelect.apk
f:id:popokann:20130928235210p:image:w240



使ってみてどれが使いたいなと思ったか教えて下さい。AutomateItを使ってないのでWX04SHユーザーにとってどんな使い方が理想的かがイメージ出来てません。もちろんきちんと動作するかの報告もお願いします。
「WX04SH PDX mode」については画面キャプチャ(通知アイコンが画面に出た状態、通知情報の詳細を開いた状態)をどこかにあげてくれると嬉しいです。手持ちの実機じゃWX04SHらしいキャプチャが取れないので……。

ソースは動作OKの報告あがったらアップ予定です……が、ConnectivityManagerのメソッド(またはConnectivityManager#mService経由でIConnectivityManager内の同名メソッド)を

setMobileDataEnabled → setPhsDataEnabled
getMobileDataEnabled → getPhsDataEnabled

に名前を変えて呼び出すだけで「データ通信(PHS)」のチェックを自由に付け外し可能、という単純なお話です。
私のはあんまり綺麗なソースでもないので、待つの面倒だったら上記クラス・メソッドをググってみてくださいね。
それでは人柱の皆様よろしくお願いします〜。

2013-09-24

WX04SHのPHSデータ通信がアプリでOn/Offできるかの調査(人柱募集)その2

前回のエントリを公開したところ、さっそく人柱さんから情報をコメントして頂きました。ご協力ありがとうございます。

コメントして頂いた方は、useWill.com管理人のfetuinさんでした。ご協力感謝いたします♪
useWill.comの方でも新たにエントリ作って取り上げてくれてますね。(^_^;) *1

AQUOS PHONE es(WX04SH)でPHSデータ通信をアプリから制御するためのユーザーサイドの動きが始まった
http://kamo.pos.to/dpoke/c/UW8/UW8820.html

頂いた情報をもとに、「データ通信(PHS)」のOn/Off設定と、状態取得するテストアプリを作ってみました。
http://www.casraq.com/WX04SH_Test2.apk
f:id:popokann:20130924165603p:image
画面にボタンが4つあります。上から順に説明していきますね。
1番目の「Refresh」を押すと、最新の状態を再取得します。 *2
2〜4番目のボタンは上から「Wi-Fi」「3G」「PHS」の状態表示&切り替えボタンとなっています。「On」と「Off」は言葉通り、「Not Support」はAPI呼び出しが出来ない状態となっています。
一番下のテキストボックスにはデバッグ用の情報を出力します。
上記キャプチャーはエミュレーターの為、もちろん「PHS」の機能は動作しません。

今回のアプリで確認して頂きたい事は以下の3点になります。

  • PHSのボタンが「Not Support」になっているかどうか。
  • PHSのボタンが有効な場合、きちんとOn/Offが出来るかどうか。
  • テストアプリ実行中、WX04SHのOS設定画面などでPHSのOn/Offを変更した場合、アプリに戻って「Refresh」を押すと正しく情報を取得出来るかどうか?

ご協力頂ける方は端末のバックアップ等をきちんと行い、WX04SHが内部から爆発しW-SIMと小型QWERTYキーのパーツが大量に飛び出してきてもイエデンワで119に通報出来る様に準備を整えてからアプリの実行をお願いします。(^_^)

*1: 私は確かにユーザーサイドだけどWX04SHユーザーに非ずという謎状態w

*2: 自動更新は面倒なのでやってません。(^_^;)

2013-09-23

WX04SHのPHSデータ通信がアプリでOn/Offできるかの調査(人柱募集)

WX04KもWX10KもWX04SHも全部見送ってる私ですが、ちょっとWX04SHのある事が気になっています。
PHSデータ通信の使えるWX04SHでは「pdxメールを送受信出来るのはPHSデータ通信のみ」という現行仕様だそうです。*1

また全ての設定がOnだった場合『Wi-Fi >> PHS >> 3G』という接続優先順位になっているそうです。

その為「Wi-Fiまたは3Gの高速回線をデフォルト利用」しつつ「pdxメールを利用する」を両立させるには、「pdxメール送受信時だけWi-FiをOffしPHSデータ通信をON」「pdxメールを終了した時はWi-FiをOn、PHSデータ通信をOff」に設定する必要があるみたいですね。*2

ですが「手動で毎回設定をするのは非常に面倒くさい!」という声があがっていて、それで自動処理化してしまいたいという話が↓で行われてたんですね。

AQUOS PHONE es(WX04SH)でpdx/willcom.comメアドを送受信しつつ、3G/Wifiの高速回線も便利に使用する方法
http://kamo.pos.to/dpoke/c/UW8/UW8812.html

一応AutomateItというアプリでそれに近い事が出来そうという話にまでこぎ着けたそうなんですが、残念ながら「PHSデータ通信のOn/Off切替するアプリ(for WX04SH)」が無い為完全には目的を達せられていないみたいです。

3Gモバイルデータ通信であれば以下の非公開APIでOn/Offを設定&取得できるようです。*3

ConnectivityManager#setMobileDataEnabled(boolean);

ConnectivityManager#getMobileDataEnabled();


本来のAndroidシステムにPHSの実装は埋め込まれてなかった筈ですので、おそらく同様のクラス/メソッドSHARPさんが作っていると思われます。
たぶんメソッド名をPHSっぽい感じで命名して、単純に同じクラスへ追加しているのではないかと私は予想します。(素人考え)

という訳で、「クラスがConnectivityManagerのまま」「メソッドの新規追加」しているかどうかを調査するコードが以下になります。(というかリンク先をほぼ流用しただけ)

package com.example.connectivitymanagermethodlist;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import android.net.ConnectivityManager;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        EditText editText1 = (EditText)findViewById(R.id.editText1);
        editText1.setText(getMethods());
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    public String getMethods() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);

        Class<?> clazz = null;
        try {
            clazz = Class.forName(cm.getClass().getName());
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return null;
        }
        try {
            Method[] available_methods = clazz.getDeclaredMethods();
            StringBuilder sb = new StringBuilder();
            for (Method m : available_methods) {
                sb.append(m.getName());
                sb.append("\n");
            }
            return sb.toString();
        } catch (SecurityException e) {
            e.printStackTrace();
        }
        return null;
    }

}

コンパイルしたAPKもhttp://www.casraq.com/ConnectivityManagerMethodList.apkサーバーにアップしましたので、誰かWX04SH実機をもっている人が実行結果をコメント欄までコピペしに来て頂けると嬉しいです。(^_^)
もし本当に情報が寄せられたなら、そのまま調子に乗ってPHSデータ接続切替アプリを作成するつもりです。
ただし

  • 開発速度が遅いので他の人が先に完成させる可能性が高い。
  • ConnectivityManagerとは別クラスに機能を作っていた場合には手詰まりになる。
  • 参考にしている3G通信の方ももともと非公開APIなので、PHSデータ通信の方もOSの対応で(既にor将来的に)APIを利用出来ない可能性がある。

という懸念材料もたっぷりですので、協力して頂ける場合はその点ご了承くださいませ。m(_ _)m

*1:将来的に「Wi-Fi3Gからもpdxメール送受信可能にする予定(時期は未定?)」らしいですが、現状ではPHSデータ通信状態に上手く切り替える必要があるみたいですね。

*2: もちろん速度を犠牲にPHSデータ通信のみをOnにすれば切替する手間はありませんが。

*3:私も今回観覧車さん経由で教えてもらいました。

Connection: close