院生のアプリ開発。

日々プログラミングの勉強しています。 かじった物、触れた物→ java/processing/c/c++/c#/MATLAB/Perl/Ruby/javascript/Objective-C/R/Android/IOS/ubuntu/linux

既読を付けないアプリ「無既読」 アップデート android 5.0以降にも対応


既読を付けずにLINEメッセージを読むアプリ 無既読

「無既読」アップデートしました。

android 5.0 以降の端末でも長文のメッセージを取得が可能。その他、細かいバグの修正。詳しい更新内容は下部の更新詳細へどうぞ。

学業と就活で忙しくなかなか更新が出来ませんでしたが無既読も公開1年半でようや
8万インストールを超えました。これからも「無既読」をよろしくお願いいたします。

f:id:juntec:20160320105047p:plain:w100f:id:juntec:20160320105116p:plain:w100


更新詳細

android 5.0 以上では通知の取得にNotificationListenerを使用
設定には 「設定」 -> 「サウンド・通知」 -> 「通知へのアクセス 」から
無既読にチェックを付ける必要があります。

android 4.4 以降では通知の取得にAccessibilityServiceを使用
設定には 「設定」 -> 「ユーザー補助設定」から
無既読をONにする必要があります。



f:id:juntec:20150406094210p:plain:w100

Bluetooth Connection Failed: Stream setup failed [ ubuntu / linux]

製作した公開中のアプリ 
LINEの既読を付けないアプリ無既読



問題点

1)PCからA2DP接続ができない。
2)システム設定のパネルが足りない(サウンドの設定とかできない)

ubuntuBluetoothで音楽が聴きたくてBluetoothアダプターを購入
Amazon.co.jp: PLANEX Bluetooth USBアダプター Ver.4.0+EDR/LE(省エネ設計)対応 BT-Micro4: パソコン・周辺機器

色々設定が必要だったのでメモ残し。購入後そのまま指してペアリングしA2DP接続すると
Bluetooth Connection Failed: Stream setup failedとエラーがでる。(ペアリングは出来た)

f:id:juntec:20151124225631p:plain

2時間くらい試行錯誤してようやく解決。結論から言うとubuntu の audio.conf の設定でA2DPの設定がONになっていない。
モジュールが入ってない人はインストールから

$ sudo apt-get install pulseaudio-module-bluetooth

デフォルトだと以下のようになっている。

$ sudo gedit /etc/bluetooth/audio.conf
# Set to true to support HFP, false means only HSP is supported
# Defaults to true
HFP=true

# Just an example of potential config options for the other interfaces
#[A2DP]
#SBCSources=1
#MPEG12Sources=0

以下のよう変更
1)A2DPの部分のコメントアウトを消す。
2)HFPをfalseにする。

# Set to true to support HFP, false means only HSP is supported
# Defaults to true
HFP=false

# Just an example of potential config options for the other interfaces
[A2DP]
SBCSources=1
MPEG12Sources=0

モジュールの再読み込み

$ pactl load-module module-bluetooth-discover

f:id:juntec:20151124000627p:plain

接続できたー。

んでシステム設定のサウンドの出力先を変更すればいいだけなんだけど問題発生。
f:id:juntec:20151124001202p:plain
サウンド設定がない。それどころか色々消えてね?
なんで消えたのか分からないけどレムーブして再インストールした。

sudo apt-get install gnome
sudo apt-get install gnome-panel

f:id:juntec:20151124001814p:plain

復活した。めでたしめでたし。

Last.fm Web API で類似アーティストを取得してみた。 ( java / artist.getsimilar )

Last.fm」のアーティストの類似アーティストを返すWebAPIを使ってみた。
今回はartist.getsimilarを使ったが、アーティスト情報やアルバム情報、楽曲の長さも調べられるメソッドもあるので便利。

f:id:juntec:20151205115404p:plain

APIを使って例えば類似度の結果を表示するページを作ってみた。ページはperlで記述。
http://www.kthrlab.jp/members/ryouhei/jun/artistgetsimilar.cgi


Java ver..

public static void createSimilar(String artist) {
        //今回は類似アーティストを取得する artist.getsimilar を使用
        //artist名 は UrlEncode する必要あり
        //●●● には前もって取得した api key を入れる
	String encArtist = artist;
	String urlString = "http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&artist="
                            + encArtist + "&api_key=●●●&format=json";
		
        try {URL url = new URL(urlString);
	URLConnection uc = url.openConnection();
	uc.setDoOutput(true);//POST可能にする

	uc.setRequestProperty("User-Agent", "@IT java-tips URLConnection");// ヘッダを設定
	uc.setRequestProperty("Accept-Language", "ja");// ヘッダを設定
	OutputStream os = uc.getOutputStream();//POST用のOutputStreamを取得

	String postStr = "foo1=bar1&foo2=bar2";//POSTするデータ
	PrintStream ps = new PrintStream(os);
	ps.print(postStr);//データをPOSTする
	ps.close();

	InputStream is = uc.getInputStream();//POSTした結果を取得
	BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    
        //後はreaderに入ってる取得した結果をあれこれ
}

アーティスト名をUrlEncodeするコード
結構コード雑だけど

	public static String ArtistEncoder(String setArtist){
		String enc = "utf-8";
		String encArtist = "";
		try {
			encArtist = (URLEncoder.encode(setArtist, enc));

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		encArtist = encArtist.replace("+", "%20");
		encArtist = encArtist.replace("*", "%2a");
		encArtist = encArtist.replace("-", "%2d");
		
		return encArtist;
	} 

取得した「コブクロ」の類似アーティストは以下のような感じ

MISIA
槇原敬之
福山雅治
DREAMS COME TRUE
Chemistry
一青窈
小田和正
久保田利伸
絢香
徳永英明
中島美嘉
Exile
スキマスイッチ
ケツメイシ
ゆず
Juju
FUNKY MONKEY BABYS
桑田佳祐
レミオロメン
HY
Mr.Children .....省略

Perlモジュールのインストール perl/module/linux/install/CPAN

今回URIを使用したかったがURIモジュールが入っていなかった。
手動で行うのは面倒臭かったのでCPANからのモジュールインストールをメモ。

# モジュールのインストール
cpan URI

 cpanシェルを起動して対話的にインストールを行う場合。

# cpanシェルの起動
cpan

# モジュールのインストール(cpanシェル)
install URI

# cpanシェルの終了(cpanシェル)
exit

モジュールがインストールされているか確認

perl -e 'use URI;'

名前が間違えていたり、インストールされていないと

perl -e 'use URi;'
Can't locate URi.pm in @INC ...

と出るから確認する。

以上!!

eclipse のメモリ設定 memory heap ubuntu and win7 [Java heap space]

eclipse のメモリ設定 memory heap ubuntu/linux/win7

AndroidStudio だと動かないアプリケーションがあったので久しぶりにeclipseデバッグした。

今まではeclipseの300Mでメモリ足りてたのに
google のanalytics v4 を導入したら700Mくらい使うようになった。
eclipse のメモリ不足で固まってしまって困ったのでその解決法とメモ

eclipse.iniの記述を変更し
eclipse -clean
で実行すればいいらしいい。

  • Xms512m
  • Xmx1024m

に値を変更。

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140116-2212
-product
org.eclipse.epp.package.standard.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms512m
-Xmx1024m

これでもダメな場合コマンドから直接設定して起動する。

ubuntu/linuxeclipse -vmarges -Xxm1024M
winは eclipse.exe -vmarges -Xxm1024M


設定前
f:id:juntec:20150623211755p:plain


設定後
f:id:juntec:20150623211807p:plain

USBドライバ , adb 実機でデバイスが認識しない時 (ubuntu / linux / android)

自分の製作した公開中のアプリ →→ LINEの既読を付けないアプリ無既読


問題点:デバイスが認識しない

ubuntu, Linuxandroidの実機でアプリをデバックするとき

f:id:juntec:20150429032303p:plain


このように認識してくれない。
前もやったのに忘れるからメモ残し。
画像はAndroidStudioだけどeclipseでも同じ作業です。

まずUSBデバックにした端末をpcと接続

terminalでUSBデバイスを表示して端末のベンダーIDを確認
コマンドは

& lsusb

以下の04ddの部分がベンダーID
f:id:juntec:20150429033246p:plain

51-android.rulesにベンダーIDを登録します。

& sudo gedit /etc/udev/rules.d/51-android.rules

ベンダーID「04dd」を追加

SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666", GROUP="plugdev"

二つあるのは二つのデバイスを追加したから。
そしてすぐに適用するには以下のコマンドで再読み込みさせる。

$ udevadm control --reload-rules
$ ./adb kill-server
$ ./adb start-server

自分は適用されなかったから再起動で解決

f:id:juntec:20150429034848p:plain

I can't find file `ptmr7t'

学会用のLaTeXを書いていたら
Font OT1/ptm/m/n/10=ptmr7t at 10.0pt not loadable: Metric (TFM) file not found.
ってエラーがでた。

sudo apt-get install texlive-fonts-recommended

でパッケージのインストールで解決。

なんか Ubuntu を Ubuntu12.10 にアップデートしたらいろいろインストールが必要になった。

必要なパッケージは
texlive-lang-cjk
xdvik-ja
texlive-fonts-recommended
らしい。