When Alex Ewing was a kid growing up in Purcell, Oklahoma, he knew how close he was to home based on which billboards he could see out the car window.…
![TechCrunch | Startup and Technology News](https://cdn-ak-scissors.b.st-hatena.com/image/square/92584d6251feb0822f349cf0211361b2833c9939/height=288;version=1;width=512/https%3A%2F%2Ftechcrunch.com%2Fwp-content%2Fuploads%2F2018%2F04%2Ftc-logo-2018-square-reverse2x.png)
一覧で紹介したセンサーのうち Sensor.TYPE_PROXIMITY (近接センサー) Sensor.TYPE_LIGHT (環境光センサー) Sensor.TYPE_TEMPERATURE (温度センサー) などは今回のサンプルコードの一部を変えることで同様に扱えます。ぜひ試してみてください。 センサーマネージャの取得 /* センサーマネージャ */ private SensorManager mSensorManager; private boolean mIsSensor; /* Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContent
例としてUSBの接続/切断を検知する BroadcastReceiver を作成し、そこから Activity を起動します。 AndroidManifest.xml <receiver android:name=".UsbReceiver"> <intent-filter> <action android:name="android.intent.action.UMS_CONNECTED"></action> <action android:name="android.intent.action.UMS_DISCONNECTED"></action> </intent-filter> </receiver>パーミッションが必要な場合は receiver タグ内に必要な android:permission を記述する。 USB接続/切断の検知にはパーミッションは必要ないので記述はない。
2012-08-12 eclipseでAndroid Support Libraryがインストールされていないと怒られた Android Eclipse 4.2(Juno)がリリースされた事もあって久しぶりに、SDKやらADT(Android Development Tools)のアップデートをしてみました。プロジェクト作成時のウィザードもいつも間にかだいぶ変わってますね。で、ウィザードを進めていくと最後で以下の様にAndroid Support Libraryがインストールされていないというエラーになってしまいました。 「This template depends on the Android Supprt Library, which is either not installed, or the template depends on a more resent version t
Broadcast intentの送受信の使い方です。 Broadcast intentとは、Implicit intent(暗黙的なintent)とほぼ同じものですが、1点だけ大きく異なるところがあります(Implicit intentについては「外部アプリから起動されるアプリを作る」を参照)。それは、Implicit intentが選択された1つのActivityしか受信できないのに対し、Broadcast intentは基本的に全Activityが受信できます。受信するかどうかIntent filterで設定するのは同じです。 ただし、基本的に全Activityと書いたのは、そうでないBroadcast intentもあるからです。Broadcast intentを投げる方法は2通りあり、1つはsendBroadcast()を使います。この場合、全Activityが一斉に(非同期に)
1970年群馬県生まれ。工作をしがちなため、各種素材や工具や作品で家が手狭になってきた。一生手狭なんだろう。出したものを片付けないからでもある。性格も雑だ。もう一生こうなんだろう。(動画インタビュー) 前の記事:渋谷駅屋上に昔、ロープウェイが通っていた(デジタルリマスター) > 個人サイト 妄想工作所 予備調査:第一段階サンプリングおよび種別参照 さっそく一箱買ってきた。最近は年齢が年齢なだけにご無沙汰してしまっているが、小さいころにはずいぶんお世話になった一品。いろいろな動物の形のビスケット、というだけで楽しかったあのころ。 ちなみにこの見出しの調査名は専門用語でなく適当な言葉です。あしからず。 さてパッケージをよく見てみよう。 モンドセレクションの存在を知ったのもこのお菓子から。 箱を開けるとやはり今っぽい装丁が。このように横から開くこと自体、今っぽいですね。 ワニ、います。しかし位置
Androidアプリケーションで設定情報を保存したい場合、Preferenceを使うと便利です。 以前TechBoosterでは「データを簡単に保存する方法」としてPreferenceを紹介しましたが、 Preferenceを使うことでデータの保存だけではなく、下の図のようなデータ入力のためのGUIも簡単に実装することが可能です。 今回はPreferenceを使った設定情報の入力・保存、取り出しまでの手順をご紹介します。 GUIの項目に関する情報はres/xml以下にxmlファイルとして記述します。 今回は例としてpreferences.xmlというファイルを作ります。 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/andr
EC2を使い始めてはや半年以上が経過した。セキュリティの調査目的、つまりは自分のパソコンではやりたくない作業に使おうと思って契約したのだが、あらためて約款を読んでみると、IDSを動かすのも微妙なのではないかという位にその用途を縛っていることがわかった。 「え?約款て何??」という方も多いと思うが、EC2やS3をはじめとするAmazon AWSを使っている人は例外なく加入時に約款(ユーザーアグリーメント)を承諾しているんです。 これがその実物。http://aws.amazon.com/agreement/ こんな長い約款を読んでいる人なんていないと思うので注意すべき点を書いておく。僕もあまり真面目に読んでないので、このエントリーをみて引っかかった人は是非原文をあたって下さい。 AWSでのご法度/禁則事項 お金を払わないと強制退会になるのは当然として、AWSを使ったDoS攻撃なども全て禁止、
さんざん、メール嫌いと言い続けているボクですがそれでもメールを全く無視していられるってことはありません。それでも、最近ではGmailだけ見てればなんとかなるようにはなってきたので、最低限のラベルをつけてあとは検索して探すっていう使い方をしています。 で、そのGmailの一番目立つ弱点としてmonospace(等幅フォント)じゃないので、メルマガとか署名とかがちゃんと表示されないんです。海外でどうだか知りませんが、日本では基本的に等幅フォントに最適化してメールを作成するので、メールの文章が読みにくくてしょうがないです。 前に無理やり等幅フォントに変換するGreasemonkeyを公開していてそれで一応要件は満たすんですが、フォントサイズが固定だったりしたのでもうちょっと細かく設定できるものを作りました。 「Gmail Fonts Manager」はGmailの タイトル、内容、入力フォームの
ここでは、表題にもあるとおり、nmapという、セキュリティ確保に非常に役立つツールについて説明します。 ただし、この文章、長いですよぉ(笑)。 このツールは、ネットワーク上のサーバーが、「どの様なサービスを提供している(可能性があるか)をリモート(ネットワーク越し)に調査するためのものです。 なぜ、提供しているサービスを調査することが、セキュリティ確保につながるのでしょう? どんなサービスが動いていたっていいじゃん、とか、俺はどんなサービスを使っているか知っているから、なんていう声が聞こえてきそうです。 しかし、多くの場合、使っているつもりのないソフトが動いていたりなんかして、サービスが知らぬ間に動いていたりします。 知らぬ間に動くんだから、ろくな設定がされておらず、余計にセキュリティ上危ない、ということになりますねぇ。 また、トロイの木馬のように、勝手にサービスとして動いてしまう悪意のツ
Androidで常駐型アプリケーションを作成する場合に便利なServiceについてライフサイクル・使い方を解説します。サービスの利用例はステータス通知(Notification)を変化させる等をご確認ください。Serviceを使う(1)では簡単化のため、Remote Messenger Serviceを次回以降として、LocalServiceに特化して解説します。 Serviceのライフサイクル onCreate / onStartCommand / onDestroyの3つの状態遷移 サービスの実行方法によってライフサイクルが異なる サービスの実行方法はContext#startServiceとContext#bindServiceの2種類 startService/stopService Service全般として実行中はServiceからActivityへIntentの発行が可能 サー
2011年9月20日火曜日 Intentにより起動されるタイミング Intentにより起動されるタイミング Intentを受けて動かされる側のプログラムの実行時のタイミングを調べる。 問題意識 Intentを受けて動かされるプログラムは、起動させられるのである。と、取り敢えずそのように理解していた。この場合、「起動」という仕掛けが問題になる。 プロセスが無い状態から起動するのであれば、やむを得ない。 しかし、既に稼働しているアプリにIntentした場合はどうなるのか。Intentを受けたプログラムは、プロセスの内容をリセットするのだろうか。そうであれば、Intentを実行する度に、アプリ全体の初期化処理を行わねばならず、重くなる。 Intentを受ける毎にアプリ全体を初期化することは、非合理的である。回避策はあるのか。 動かされるプログラムがActivityの場合 Inte
Serviceについて調べてみたのでまとめ。 Serviceを起動前にBindしても起動できる bindService()でServiceにBindすると一緒にServiceがCreateされる。ただし、bindService()で起動されたServiceはunbindService()された時に殺される。unBindした後も起動しておいて欲しい場合はstartService()後にbindService()してあげる事でunbindService()したとしても殺されない。bindしたActivityがunbindせずに死ぬと例外吐くからちゃんとonDestoryとかでunbindしてあげましょう。 Serviceはメモリがなくなったら殺される Backgroundで起動して動いている間は死なないものだと思っていたけど、Serviceはメモリがなくなったら死ぬ。メモリがなくなった場合はo
●AIDLとは? →android上でプロセス間通信を行うためのもの Service側に実装されたコールバック用のインターフェースを Activityが受け取ることで、Serviceの処理を呼び出すことが可能 逆に ServiceからActivityのメソッドも呼び出せるらしい? ★ 要調査 最初のテンプレートさえ覚えておけば、使い方は特に問題なさそう 1.AIDLファイルの作成 拡張子 .aidl のファイルを作成し、その中に下記のようにインターフェースを書く javaソースと同じフォルダに置く interface IServiceMethod { void CallServiceMethod(); } 2.サービスの実装 class MyService extends Service implements IServiceMethod { @Override public IBinde
前回の「Android 4.0のサービス/プロセス間通信の基本」ではAIDLを使用した「サービス」の基本を解説しました。サービスのライフサイクル、AIDL、Parcel、Parcelableに関しては、前回の記事を参照してください。 今回の記事で解説するサンプルアプリは、前回と同じものを使用します。以下よりダウンロードしておいてください。 なぜ「プロセス間通信」なのか? Androidの「サービス」は、バックグラウンドで処理を行いたい場合やバックグラウンドに常駐させたい場合に使用するケースがほとんどです。そのバックグラウンドの処理がアプリ固有であれば、同一プロセスで行い、プロセス間通信を行う必要はありません。 つまり、「複数のアプリから使用される可能性のある処理を独立したプロセスとして切り離し、それぞれのアプリから使用できるようにサービス化しておくこと、そのサービスを利用すること」がプロセ
Broadcastに優先順位をつける Assigning Priorities Broadcast Receivers sendBroadcast()メソッドを使ってbroadcastを送信する時には、 指定された動作に当てはまるすべてのbroadcastレシーバが ランダムな流れで呼び出されます。 いくつかのbroadcastレシーバが他のレシーバの呼び出すために、 特定のbroadcastレシーバに要求を 割り当てたい場合はどうすればいいのでしょうか? そのためには、broadcastレシーバに優先権を割り当てる必要があります。 プログラムに従ってsetPriority()メソッドを使ってbroadcastレシーバに 優先権を割り当てます。 public class MainActivity extends Activity{ MyBroadcastReceiver myReceive
DIY Camper Van Furniture: Building Your Dream on a Budget Hey adventure buddies! So, you've snagged the perfect van and you're itching to hit the open road. But hold on there, Thelma to your Louise – that bare interior needs some love! Don't fret, you don't need a millionaire's budget to create a comfy, functional camper haven. DIY camper van…
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く