郵便の問題

普段会社というか事務所というか登記されている場所にいないため郵便物が届いたときに困ってしまう。

考えた結果スマートフォンを使ってピンポンの音声に反応して来客モニターの写真を撮ってメールを送信するようなシステムを構築することにした。

auroraってアプリがソースを公開してたからそれをちょこちょこいじって2,3時間ぐらいで完成した。ちゃんと動作することを祈ろう。

これならヤマトさんが来た事が分かるから次の日に事務所に行けば郵送物を受け取れる。

これで1週間おきに事務所に行く手間が省けそうだ。

fragmentの回転時の処理

fragmentで回転させると当然activityが初期化されるけど、fragmentでインスタンスを保存してonCreateで復元させるときなぜかnullpointさんがでた。

onCreateでgetActivityはできないようだ。

仕方ないのでonCreateでBundleに保存さしてonStartで復元させるというやり方にした。

たぶんスマートではないけど動いたのでいいとする。

Bundle mSavedInstanceState;
@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    Log.d("Lifecycle", "onSaveInstanceState()");

    //インスタンスの保存

    outState.putString("kusuriInfo", kusuriInfo.getText().toString());
}

@Override
 public void onStart() {
 super.onStart();
if(mSavedInstanceState!=null){//回転時の復元処理
    String value = mSavedInstanceState.getString("kusuriInfo");
    kusuriInfo.setText(value);

}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //ここだけだとnullpointなるからonstartで復元させる
    mSavedInstanceState=savedInstanceState;

}

GalaxyJのバグ

現在在庫管理システムを絶賛製作中だけど、機種によってUSBバーコードリーダの挙動がことなるから困ってしまう。GalaxyJのUsbManagerがnullを返す問題はSamsungにバグレポートを送るか悩み中。

バーコードリーダが接続されてるかのclassだけどこれでいいものだろうか

boolean USBexist=false;
boolean exist=false;
      boolean returnExist=false;
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
   HashMap<String, UsbDevice> map=manager.getDeviceList();
   Iterator<UsbDevice> it = map.values().iterator();
   while(it.hasNext()) {
       UsbDevice device = it.next();
          USBexist=true;
          returnExist=true;
       Log.d("USB", "NAME =" + device.getDeviceName());
       // use device info
      //if(showMessage)Toast.makeText(getApplicationContext(), "USBが接続されました。", Toast.LENGTH_SHORT).show();
     }

      if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
          exist=true;
          returnExist=true;
          //if(showMessage)Toast.makeText(getApplicationContext(), "バーコードスキャナーが接続されました。", Toast.LENGTH_SHORT).show();
          //((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).showInputMethodPicker();
          //Toast.makeText(this, "Barcode Scanner detected. Please turn OFF Hardware/Physical keyboard to enable softkeyboard to function.", Toast.LENGTH_LONG).show();
      }