俺のWindowsTIPS

FC2から引っ越しました

なんか作れないかな

2019-09-04 12:19:33 | 開発[Android]
https://store.google.com/jp/product/google_nest_hub


こちらを買いました。
買ったはいいけど開けてない。


使いたいイメージとしては
入力インターフェースが音声でのタブレット端末なんだけど

googleの文句通り「フォトフレーム」で使い道がない

一応、音声で家電コントロールという
もうそれだけしか使い道がないだろという大きな役目はあるけど
本当にそれだけではもったいない。

というわけで
なにか自分でアプリ作れないかなーと考えています。

amazon Echo Showとよく比較されると思うのですが
あっちも一応あるみたいだけど自由度が低そう。

というわけで
googleにしてみて調べてみたけどかなり複雑な感じです。
Wearの時も既存アプリを対応させる形だったと記憶しているけど
GoogleHome対応は音声が絡んでくるので、もっと複雑

1.音声入力は一度アップロードされる
2.WEB上で音声解析
3.解析結果により処理を決定
4.処理先へ引き継がれる
5.WEB上でアプリを実行

「今日の天気」というコマンドに対して
「晴れです」と答えるだけですから

アプリをいちいち起動してたんでは即回答できませんしね
「クーラーつけて」「ピっ(はい)」もそうですよね

となると、画面を使う意味がほとんどなくなってくる
だから、もともとスピーカーだけ売ってたんだしw


使い道と何を作ればいいのか?という問いに
youtubeが見れるということらしいので
使いながら色々模索していこうと思いました。


つうか今現在、
JAVAでandroidアプリ作れるんだろうか・・・・

アクエスのテザリングアプリ

2014-05-16 13:10:01 | 開発[Android]
現在試行中。でもたぶんできない。
最終的には、Root権限が必要になってくると思われる。

http://d.hatena.ne.jp/popokann/touch/searchdiary?word=*%5BAndroid%5D

これを参考に色々してみたが、どうしてもExceptionが発生してしまう。


android.net.ConnectivityManagerの
tetherを見るとエラー時の戻りがTETHER_ERROR_SERVICE_UNAVAIL;
とあるので、サービスの起動であってオンオフじゃないっぽい。


ならば

android.net.wifi.WifiManagerの
setWifiApEnabledならどうだ?と思った。

ググると
http://www.uni-labo.com/blog/2013/04/30/wifi%E3%83%86%E3%82%B6%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AE%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88/

こんな感じでできるっぽい?

setWifiApEnabled(WifiConfiguration wifiConfig, boolean enabled)
とあるので
WifiConfiguration wifiConfigを得るのに
WifiConfiguration getWifiApConfiguration()で得てみる

この時点でエラー。

もちろん得れてないから、オンもエラー。


うーん・・・・


DatagramPacket DatagramSocket send 失敗

2014-05-16 12:14:41 | 開発[Android]
UDPを用いる場合は、DatagramPacket となっている。

String sendStr = "TEST";
byte []bufa = sendStr.getBytes();

InetSocketAddress remoteAddress
= new InetSocketAddress(getBroadcastAddress(this), UDPPORT);

udpSocket = new DatagramSocket();
udpSocket.setBroadcast(true); //しなくていいはずだけど

sendPacket= new DatagramPacket(buf,buf.length, remoteAddress);
udpSocket.send(sendPacket);


これいわゆるお手本どおりだと思う。
全部tryで囲んで

} catch (SocketException e) { TellToast("SocketExceptionだぜ");
} catch (IOException e) { TellToast("IOExceptionだぜ");
} catch (SecurityException e) { TellToast("SecurityExceptionだぜ");
} catch (Exception e) { TellToast("Exceptionだぜ");


これを Android2で行うと正常に終了する。
だが、 Android4で行うと Exception をキャッチしてしまう。

どうしても udpSocket.send(sendPacket)ができない。
(ちなみに受信は2でも4でもばっちりできる)

なにかセットが足りないのか?
色々やってみたけど解決しない。


もともと
android:targetSdkVersion="17" />
にしていた。
なのでターゲットをAPI10 Android2.3.3 にしてみた。

すると・・・・・・・・・
Android4でもばっちり・・・・・・・・・
なんなんこれ・・・ORZ


このアプリに関しては、
API17がなんかええ感じに昔のも動かしてくれる
と聞いたので試すのも目的だったが、もうなし決定。

テスト完了後、
新しいプロジェクトできっちりAPI指定した上で作ろう。


ちなみに レシーブ(受信)の場合も

packet.setData(buf);  // byte[] buf = new byte[256];
Socket.receive(packet);

Android4の場合はこれをしないと罠らしい。
http://www.zakugiri.com/MT/archives/2012/02/android40datagr.html


android 開発覚書

2014-05-16 11:15:10 | 開発[Android]
アンドロイドで HTTPのごくごく簡単な通信でつまづく

通信の方法は色々あるみたいで
http://y-anz-m.blogspot.jp/2011/10/androidapache-http-client.html

基本的には、 DefaultHttpClientと HttpURLConnection


ではじめに、
DefaultHttpClientで通信を行っていたのだが


HttpGet request = new HttpGet(requrl);
DefaultHttpClient client = new DefaultHttpClient();

HttpResponse res = client.execute(request);


これでつまづく
client.execute(request)で強制的に try囲いされるわけだが
Android2.3上では時折通信エラーを吐くが通信ができる。
しかし、Android4.2上では、エミュも実機も全く通信ができない。


プロでもないから解析できないので、
パラメータが不正なのかと

HttpParams params = new BasicHttpParams();
params.setParameter("http.useragent", "hogehoge");
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
HttpConnectionParams.setConnectionTimeout(params, 5000);
HttpConnectionParams.setSoTimeout(params, 10000);
DefaultHttpClient client = new DefaultHttpClient(params);

みたいなことをしてみるが変わらずダメ。

コンパイラを4.2から2.3にしてみてもダメ。


結局、HttpURLConnectionで作り直すとどちらも全く問題ない。
これはなんなんだ?



忘れちゃならないこと


・マニュフェストに
追加


・DefaultHttpClientの場合は
client.getConnectionManager().shutdown() でコネクションを閉じる。