hiroyuki_tの日記
categories: Android
AndroidにMhtViewerをインストールするとファイルマネージャでHTMLファイルを選択した際に MhtViewerが選択肢に現れる事がある。 これについて現在わかっている情報をまとめる。 MhtViewerのintent-filterは以下としている。 `AndroidにMhtViewerをインストールするとファイルマネージャでHTMLファイルを選択した際に MhtViewerが選択肢に現れる事がある。 これについて現在わかっている情報をまとめる。 MhtViewerのintent-filterは以下としている。 ` まずandroid:pathPatternのみの設定で良いのではないかと思うかもしれないが android:pathPatternでは反応しないファイルマネージャがあるためandroid:mimeTypeも設定している。 android:mimeType=”message/rfc822″だけではなく、android:mimeType=”text/html”も対象にしている。 これはファイルマネージャによっては、MHTML形式のファイルをmimeType=”text/html”と誤判定する場合があるためである。 上記のため、現状では上記設定としている。 ファイルマネージャがファイルの判定を拡張子で行い、mimeType=”message/rfc822と判定してくれれば問題はない。 しかしファイルマネージャがファイルの中身でファイルを判定する場合、MHTML形式はHTMLファイルとの区別が難しいファイルもあるため誤判定によりandroid:mimeType=”text/html”と解釈されるケースがそれなりに存在する。 それを救うために上記intent-filterの設定にしている。 とりあえず、上記設定としているが、もっと良い方はないのだろうか。
26 Jan 2013
categories: Android
Androidで外部ストレージのパスを取得する方法 現在Androidで外部ストレージのパスを取得するAPIが存在しない。 Androidでストレージのパスを取得するEnvironment.getExternalStorageDirectory()は、 内部ストレージが存在する場合、名前に反して内部ストレージのパスを返す。(これは、既存プログラムの互換性を考えた時に、必要な考慮と思われる。) そのため、以下を参考にして/system/etc/vold/fstabを使用する方法で取得することにした。 (参考http://inujirushi123.blog.fc2.com/blog-entry-93.html) Xperia VLの/system/etc/vold.fstabを確認したところ 内部ストレージがfuse_mountで定義されていたため、追加している。 static private List getStoragePaths() { List mountList = new ArrayList(); Scanner scanner = null; try { scanner = new Scanner(new FileInputStream(new File( "/system/etc/vold.fstab"))); while (scanner.hasNextLine()) { String line = scanner.nextLine(); if (line.startsWith("dev_mount") || line.startsWith("fuse_mount")) { String path = line.split(" ")[2].replaceAll(":.*$", ""); if (!mountList.contains(path)){ File dir = new File(path + "/"); if (dir.canRead()){ mountList.add(path); } } } } } catch (Exception e) { mountList = new ArrayList(); mountList.
4 Jan 2013
categories: Android
MhtViewer 1.0.4 以下の修正を行いました。 ディレクトリ選択画面でファイル名を表示するようにし、ファイル名を選択した場合、mhtの表示ができるように修正 拡張子mhtmlに対応 内部処理の細かい改善 MhtViewerはMHTML形式によって作成された、Webページのアーカイブファイルのビューアです。(Android2.2以上必須) 長文のmhtファイルを読むために作成されました。
3 Jun 2012
categories: Android
MhtViewer 0.9.27 以下の事象に対応しました。 htmlのcharsetと異なるcharsetがhtmlより前に指定されていると、文字化けが発生する 最後のファイルの扱いが不完全になる(画像等が表示されない等) MhtViewerはMHTML形式によって作成された、Webページのアーカイブファイルのビューアです。(Android2.2以上必須) 長文のmhtファイルを読むために作成されました。
25 May 2012
categories: Android
MhtViewer 0.9.15 初めて公開した0.7.1と比べて、大きく改善されています。 MhtViewerはMHTML形式によって作成された、Webページのアーカイブファイルのビューアです。 長文のmhtファイルを読むために作成されました。
3 Apr 2012
categories: Android
使用頻度が高いソフトウエア10選 ES File Explorer 使いやすいファイルマネージャ 見た目も良い Adobe Reader PDFビューア スクロールがしやすいが、しおり機能が使えないのが残念 ezPDF Reader PDFビューア しおり機能が使えるので、必要な場合はこちらを使う QuickPic 写真ビューア Perfect Viewer 操作しやすい画像ビューア Jorte Calendar システム手帳 乗換案内 交通機関の乗り換え案内 Beautiful Widgets 時計+天気予報ウィジェット Volume Control + 音量調節 MhtViewer mhtビューア 自作
17 Mar 2012
categories: Android
Android 2.2以降でテーマを即時に反映させる方法よりも こちらの方が速度的に優位性がある。 static void displayRefresh(Activity activity){ activity.finish(); ComponentName comp = new ComponentName(activity.getPackageName(), activity.getClass().getName()); activity.startActivity(new Intent().setComponent(comp)); }
22 Feb 2012
categories: Android
Android 3.0以上であれば、recreate()を使えばよさそうだが、 そうでない場合でも、画面の向きを変更すればテーマを即時に反映させられるようだ。 自分のアクティビティのonCreateで setThemeでテーマを変更できるようにしておき、 メニュでテーマを選択し、reflectTheme()を呼び出し、 これで実現できるようだ。 public void onCreate(Bundle savedInstanceState) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); int themeSetting = sp.getInt("themeSetting", MENU_THEME_BLACK); if (themeSetting == MENU_THEME_WALLPAPER){ setTheme(android.R.style.Theme_Wallpaper); } ... public boolean onOptionsItemSelected(MenuItem item) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); switch (item.getItemId()) { case MENU_THEME_WALLPAPER: sp.edit().putInt("themeSetting", MENU_THEME_WALLPAPER).commit(); reflectTheme(); return true; } } private void reflectTheme(){ Configuration config = getResources().getConfiguration(); int screenOrientation; if(config.orientation == Configuration.ORIENTATION_LANDSCAPE) { screenOrientation = ActivityInfo.
12 Feb 2012
categories: Android
mhtファイルはOpera Miniでも見れるが、 Opera Miniで4MB程度のmhtファイルを見ようとしても、異常終了して見れなかったのが開発契機 MhtViewerはMHTML形式によって作成された、Webページのアーカイブファイルのビューアです。 長文のmhtファイルを読むために作成されました。 SDカードからMhtファイルを読み込み、表示するため、SDカードがないと動作しない。 長文を読むためのサポート機能として、しおり機能がある。
22 Nov 2011
categories: Android Ubuntu
Ubuntu11.04にてAVD(Android Virtual Device Manager)からEmulatorを起動しようとしても起動しない コマンドラインから実行するとSegmentation faultしており、 gdbを使うとvfprintfで落ちていることがわかった。 これをもとに検索すると以下が引っかかった。 以下を見るとキャプチャーカードが問題の一つとしてあるようだ。(他にWebカメラでの事象もあり) Emulator segfault on startup http://code.google.com/p/android/issues/detail?id=20952#c9 the emulator was trying to access a video device (/dev/video0 – a tv tuner card). At the same point as the OP (emulator: Adding boot property: ‘qemu.sf.fake_camera’ = ‘back’). Webカメラであればカメラの設定を変えることで対処できそうだが、 こちらで問題になっているのはキャプチャーカード(GV-MVP/RX)と思われる。 そのため以下で解決した。 Emulator segfault on startup http://code.google.com/p/android/issues/detail?id=20952#c19 rename /dev/video0 to /dev/_video0
22 Oct 2011
Design pdevty