OpenCV Manager2.4.9が認識しない機種について

OpenCV Manger 2.4.9で動かない機種について。

以下を見るとGalaxyS5とか、おそらくCPUがうまく取得できていないと思われます。
2.4.10以降であれば解決するそうです。

OpenCV Manager Failed to detect Hardware in Galaxy S5
http://stackoverflow.com/questions/23927222/opencv-manager-failed-to-detect-hardware-in-galaxy-s5

最新のOpenCVを静的にリンクする方法もあるようですが、すべてのCPUに対応したバイナリを含めると30MB近くなるので、Playストアで配信するのは難しい。

今のところ、手動でOpenCV2.4.10以降をインストールする方法があります。
以下、簡易的な手順です。

1.OpenCV Manager (2.4.11)の最新パッケージ取得

以下のリンクからOpenCV Manager (2.4.11)の最新パッケージをダウンロードする。

OpenCV Manager 2.4.11ダウンロードファイル
https://sourceforge.net/projects/opencvlibrary/files/opencv-android/2.4.11/OpenCV-2.4.11-android-sdk.zip/download

OpenCVサイト
http://opencv.org/downloads.html

*3.0は検証していないので、作成しているアプリは動かないかもしれない。
 2.4.Xで最新パッケージのほうがおそらく安全である。

2.apkファイル取得

ダウンロードしたzipファイルを解凍して、中にあるapkを取得する。
CPU種類ごとにファイルがあるので、CPUにあったファイルをインストールする。

OpenCV-android-sdk/apk/OpenCV_2.4.11_Manager_2.20_armv7a-neon.apk

3.インストール

インストールは、Dropbox、Gmail、SDCard経由等でapkファイルを端末にコピーして実行する。
注意点として、Playストア以外からのインストールなので、設定>セキュリティ>提供元不明のアプリを許可する必要があります。

HWD15管理アプリ – HWD15Manager

自宅の回線にWiMAXで、HWD15を使用している。

以前はAtermWM3800Rを使用していて、スマホアプリから状況の確認や再起動ができていた。
WiMAXで通信が切れることがあって、その場合は面倒であるが再起動する必要があった。
毎回、手で再起動するのが面倒で、このアプリでスマホから簡単に再起動できてて少し重宝してた。

しかし、今度のHWD15には公式アプリは無いのだ。
なので、無いなら作ればいいんじゃないか?
ということで、簡単にHWD15を再起動をする目的だけに、アプリをこしらえてみた。

HWD15 Manager
https://play.google.com/store/apps/details?id=com.wt2x.apps.hwd15manager

というか、通信が途切れる問題が解決できれば一番いいんだけどなあ。。。

HWD15
Wi-Fi WALKER WiMAX 2プラス HWD15 ホワイトHWD15SWU

EclipseからAndroidStudioに移行してみた

いままでEclipseを利用していたが、今頃ですがAndroidStudio(v1.3)に移行してみた。

簡単なプロジェクトから進めていて、インポート自体はAndroidStudioからEclipseのプロジェクトフォルダを指定して行う。
使用しているライブラリも読み込んでいて、すんなり行えた。

署名付きapkを作る際にエラーが出た。
「java.io.IOException: The same input jar」

これはProgurdの-libraryjars指定があるから出ているものらしい。
-libraryjarsを削除して解決。
以下のサイトを見つけた。
android studioへの移行時のエラー②
http://mizudev.blog.fc2.com/blog-entry-3.html

もう一点、Use-Permissionの権限が勝手に追加されている。
INTERNETのみのはずが、GET_ACCOUNTS、WRITE_EXTERNAL_STORAGE、READ_PHONE_STATE、READ_EXTERNAL_STORAGE等が追加されていた。

AndroidStudioの方でライブラリから利用するUse-Permissionを自動で付けてくれているのだろうか?
いちおう以下のサイトを見つけた。

Crashlyticsが勝手に追加したREAD_PHONE_STATE権限を削除する方法
http://qiita.com/takke/items/2578787aa6be73708d3a

上書きする形で、GET_ACCOUNTS、WRITE_EXTERNAL_STORAGE、READ_PHONE_STATE、READ_EXTERNAL_STORAGEを削除する指定で以下の記述をAndroidManifest.xmlに追加したら、想定のパーミッションとなった。

<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
....

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" tools:node="remove" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" tools:node="remove" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" tools:node="remove" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove" />
<uses-feature android:glEsVersion="0x00020000" android:required="true" tools:node="remove" />