<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>@blog.justoneplanet.info &#187; android</title>
	<atom:link href="http://blog.justoneplanet.info/category/computer/android/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.justoneplanet.info</link>
	<description>JavaScript、PHP、MySQLを使ったり</description>
	<lastBuildDate>Sun, 25 Jul 2010 07:34:20 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>androidで証明書のフィンガープリントを表示する</title>
		<link>http://blog.justoneplanet.info/2009/08/13/android%e3%81%a7%e8%a8%bc%e6%98%8e%e6%9b%b8%e3%81%ae%e3%83%95%e3%82%a3%e3%83%b3%e3%82%ac%e3%83%bc%e3%83%97%e3%83%aa%e3%83%b3%e3%83%88%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.justoneplanet.info/2009/08/13/android%e3%81%a7%e8%a8%bc%e6%98%8e%e6%9b%b8%e3%81%ae%e3%83%95%e3%82%a3%e3%83%b3%e3%82%ac%e3%83%bc%e3%83%97%e3%83%aa%e3%83%b3%e3%83%88%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 18:09:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=1760</guid>
		<description><![CDATA[開発用のフィンガープリントを表示する方法。備忘録。
■環境
Windows Vista
■方法
JDKのインストールディレクトリでkeytoolコマンドを実行する。

C:\Program Files\Java\%JDK [...]]]></description>
			<content:encoded><![CDATA[<p>開発用のフィンガープリントを表示する方法。備忘録。</p>
<h3>■環境</h3>
<p>Windows Vista</p>
<h3>■方法</h3>
<p>JDKのインストールディレクトリでkeytoolコマンドを実行する。</p>
<pre class="brush: bash;">
C:\Program Files\Java\%JDKのバージョン%\bin&gt;keytool -list -alias androiddebugkey -keystore C:\Users\%ユーザ名%\.android\debug.keystore -storepass android -keypass android
</pre>
<div class="kakomi">
<h4>オプションについて</h4>
<dl>
<dt>-keystore</dt>
<dd>デバッグ用証明書の格納場所を指定
<dd>
</dl>
<h4>参考</h4>
<ul>
<li><a href="http://www.android-group.jp/index.php?%CA%D9%B6%AF%B2%F1%2FGoogleMap2">勉強会/GoogleMap2 &#8211; 日本Androidの会（日本アンドロイドの会）</a></li>
</ul>
</div>
<p>大抵の参考書ではルートディレクトリで実行していたりするが、ちゃんと言ってくれなくちゃ分からない。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2009/08/13/android%e3%81%a7%e8%a8%bc%e6%98%8e%e6%9b%b8%e3%81%ae%e3%83%95%e3%82%a3%e3%83%b3%e3%82%ac%e3%83%bc%e3%83%97%e3%83%aa%e3%83%b3%e3%83%88%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>android端末の実機でデバッグ</title>
		<link>http://blog.justoneplanet.info/2009/08/09/android%e7%ab%af%e6%9c%ab%e3%81%ae%e5%ae%9f%e6%a9%9f%e3%81%a7%e3%83%87%e3%83%90%e3%83%83%e3%82%b0/</link>
		<comments>http://blog.justoneplanet.info/2009/08/09/android%e7%ab%af%e6%9c%ab%e3%81%ae%e5%ae%9f%e6%a9%9f%e3%81%a7%e3%83%87%e3%83%90%e3%83%83%e3%82%b0/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 14:36:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=1747</guid>
		<description><![CDATA[備忘録。
■デバッグモードに設定
「設定&#62;開発&#62;USBデバッグ」のチェックボックスにチェックを入れる。これでUSB接続した時はデバッグモードになる。

■接続
USBケーブルで接続すると、デバイスドライバのイ [...]]]></description>
			<content:encoded><![CDATA[<p>備忘録。</p>
<h3>■デバッグモードに設定</h3>
<p>「設定&gt;開発&gt;USBデバッグ」のチェックボックスにチェックを入れる。これでUSB接続した時はデバッグモードになる。</p>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/08/device.png" rel="lightbox[1747]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/08/device-200x300.png" alt="USBデバッグ" title="USBデバッグ" width="200" height="300" /></a></p>
<h3>■接続</h3>
<p>USBケーブルで接続すると、デバイスドライバのインストールになる。ドライバは「android-sdk-windows/usb_driver/x86/」の中にある。</p>
<h3>■認識</h3>
<p>DDMSで端末として認識されるようになる。DDMSはダウンロードしたandroid SDKに含まれている「tools/ddms.bat」をダブルクリックすれば起動する。</p>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/08/capture.png" rel="lightbox[1747]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/08/capture-300x225.png" alt="DDMS" title="DDMS" width="300" height="225" /></a></p>
<div class="kakomi">
<h4>デバッグモードにせずに接続してしまった場合</h4>
<p>この場合、すでにUSB大容量記憶装置として認識されてしまっているので、デバイスマネージャを起動して「USB大容量記憶装置」を削除し、上述の一番最初から行う必要がある。</p>
<h4>場合によって</h4>
<p><a href="http://www.htc.com/tw/SupportDownload.aspx?p_id=267&#038;cat=3&#038;dl_id=564">HTC</a>からドライバをダウンロードしてインストールしてみる必要があるようです。</p>
<h4>参考</h4>
<ul>
<li><a href="http://www.taosoftware.co.jp/blog/2008/12/android_dev_phoneusb.html">Android Dev PhoneをUSB接続してみる</a></li>
<li><a href="http://d.hatena.ne.jp/redcloud/20090715">HT-03AをデバッグモードでPCとUSB接続。。。したくてハマった顛末</a></li>
<li><a href="http://www.hakkaku.net/articles/20090723-535">Android で再開する Java プログラミング（8） &#8211; docomo HT-03A を入手～実機で Android アプリを動かしてみよう</a></li>
<li><a href="http://groups.google.co.jp/group/android-sdk-japan/browse_thread/thread/c966c0b89f0a3c1f">HTC-03A+Eclipse のUSB接続実機デバッグについて</a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2009/08/09/android%e7%ab%af%e6%9c%ab%e3%81%ae%e5%ae%9f%e6%a9%9f%e3%81%a7%e3%83%87%e3%83%90%e3%83%83%e3%82%b0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>android端末で自作アプリを動かす</title>
		<link>http://blog.justoneplanet.info/2009/08/09/android%e7%ab%af%e6%9c%ab%e3%81%a7%e8%87%aa%e4%bd%9c%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92%e5%8b%95%e3%81%8b%e3%81%99/</link>
		<comments>http://blog.justoneplanet.info/2009/08/09/android%e7%ab%af%e6%9c%ab%e3%81%a7%e8%87%aa%e4%bd%9c%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92%e5%8b%95%e3%81%8b%e3%81%99/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 18:25:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=1734</guid>
		<description><![CDATA[■/workspace/project_name/bin/project_name.apk
このファイルがアプリケーション本体になりますので、webサーバの適当な位置にアップします。
■android端末でアプリのファイ [...]]]></description>
			<content:encoded><![CDATA[<h3>■/workspace/project_name/bin/project_name.apk</h3>
<p>このファイルがアプリケーション本体になりますので、webサーバの適当な位置にアップします。</p>
<h3>■android端末でアプリのファイルにアクセス</h3>
<p>ブラウザでURLを入力するとSDカードにダウンロードされる。但し、下のようにインデックスファイルを作った方が便利。</p>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/08/cap011.png" rel="lightbox[1734]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/08/cap011-231x300.png" alt="ブラウザでアクセス" title="ブラウザでアクセス" width="231" height="300" /></a></p>
<h3>■SDカードにダウンロード</h3>
<p>上述のリンクをクリックすると、SDカードにファイルがダウンロードされる。</p>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/08/cap02.png" rel="lightbox[1734]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/08/cap02-231x300.png" alt="SDカードにダウンロード" title="SDカードにダウンロード" width="231" height="300" /></a></p>
<h3>■インストールのブロック</h3>
<p>自作アプリは通常の端末でインストールできないように設定されている。提供元不明のアプリのインストールをブロックしユーザに害のないようになっているのだ。「setting」を押して設定を変更する。</p>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/08/cap03.png" rel="lightbox[1734]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/08/cap03-231x300.png" alt="インストールのブロック" title="インストールのブロック" width="231" height="300" /></a></p>
<h3>■設定の変更</h3>
<p>「提供元不明のアプリ」の項目にチェックを入れる。ここでセキュリティリスクの注意書きが出るがテストなので「OK」を押す。インストール後は元に戻すことを強く勧める。</p>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/08/cap04.png" rel="lightbox[1734]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/08/cap04-231x300.png" alt="設定の変更" title="設定の変更" width="231" height="300" /></a></p>
<h3>■インストール</h3>
<p>これでインストールができるようになる。「Install」ボタンをクリックだ。</p>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/08/cap05.png" rel="lightbox[1734]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/08/cap05-231x300.png" alt="インストール" title="インストール" width="231" height="300" /></a></p>
<h3>■インストール完了</h3>
<p>自作アプリが自前のandroid端末で動く。「Open」ボタンを押せばアプリが起動する。</p>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/08/cap06.png" rel="lightbox[1734]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/08/cap06-231x300.png" alt="インストール完了" title="インストール完了" width="231" height="300" /></a></p>
<p>自分のアプリが動く瞬間、なんか凄く達成感がある。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2009/08/09/android%e7%ab%af%e6%9c%ab%e3%81%a7%e8%87%aa%e4%bd%9c%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92%e5%8b%95%e3%81%8b%e3%81%99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>androidでビデオを再生する</title>
		<link>http://blog.justoneplanet.info/2009/07/30/android%e3%81%a7%e3%83%93%e3%83%87%e3%82%aa%e3%82%92%e5%86%8d%e7%94%9f%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.justoneplanet.info/2009/07/30/android%e3%81%a7%e3%83%93%e3%83%87%e3%82%aa%e3%82%92%e5%86%8d%e7%94%9f%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 16:18:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=1645</guid>
		<description><![CDATA[■概要 プロジェクト名 Video パッケージ名 org.example.video アクティビティ Video アプリケーション名 Video ■Video.java package org.example.video; import android.app.Activity; import android.os.Bundle; import android.widget.VideoView; public class Video extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); VideoView video = (VideoView) findViewById(R.id.video); video.setVideoPath(&#34;/data/samplevideo.mp4&#34;); } } ■/res/layout/main.xml &#60;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&#62; &#60;FrameLayout xmlns:android=&#34;http://schemas.android.com/apk/res/android&#34; [...]]]></description>
			<content:encoded><![CDATA[<h3>■概要</h3>
<dl>
<dt>プロジェクト名</dt>
<dd>Video</dd>
<dt>パッケージ名</dt>
<dd>org.example.video</dd>
<dt>アクティビティ</dt>
<dd>Video</dd>
<dt>アプリケーション名</dt>
<dd>Video</dd>
</dl>
<h3>■Video.java</h3>
<pre class="brush: java;">
package org.example.video;

import android.app.Activity;
import android.os.Bundle;
import android.widget.VideoView;

public class Video extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        VideoView video = (VideoView) findViewById(R.id.video);

        video.setVideoPath(&quot;/data/samplevideo.mp4&quot;);
    }
}
</pre>
<h3>■/res/layout/main.xml</h3>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;FrameLayout
    xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:layout_height=&quot;wrap_content&quot;
    android:layout_width=&quot;wrap_content&quot;
    &gt;
    &lt;VideoView
        android:id=&quot;@+id/video&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_gravity=&quot;center&quot; /&gt;
&lt;/FrameLayout&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2009/07/30/android%e3%81%a7%e3%83%93%e3%83%87%e3%82%aa%e3%82%92%e5%86%8d%e7%94%9f%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>androidで音楽を再生する</title>
		<link>http://blog.justoneplanet.info/2009/07/30/android%e3%81%a7%e9%9f%b3%e6%a5%bd%e3%82%92%e5%86%8d%e7%94%9f%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.justoneplanet.info/2009/07/30/android%e3%81%a7%e9%9f%b3%e6%a5%bd%e3%82%92%e5%86%8d%e7%94%9f%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 15:05:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=1641</guid>
		<description><![CDATA[■概要

プロジェクト名
Audio
パッケージ名
org.example.audio
アクティビティ
Audio
アプリケーション名
Audio

「0」を押すと再生。「1」を押すと停止します。一応、エミュレータ上では [...]]]></description>
			<content:encoded><![CDATA[<h3>■概要</h3>
<dl>
<dt>プロジェクト名</dt>
<dd>Audio</dd>
<dt>パッケージ名</dt>
<dd>org.example.audio</dd>
<dt>アクティビティ</dt>
<dd>Audio</dd>
<dt>アプリケーション名</dt>
<dd>Audio</dd>
</dl>
<p>「0」を押すと再生。「1」を押すと停止します。一応、エミュレータ上では動作確認をしてます。</p>
<h3>■res/raw/music.wav</h3>
<p>eclipseのパッケージエクスプローラを使ってファイルを所定の位置に配置する。ちなみにWindows上でファイルを移動した場合、eclipseにはファイルの存在が知らされない。従って、R.javaにも識別子が追加されず、下のソースコード「R.raw.music」でエラーとなる。</p>
<h3>■Audio.java</h3>
<pre class="brush: java;">
package org.example.audio;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.KeyEvent;

public class Audio extends Activity {
    private MediaPlayer bgMusic;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        bgMusic = MediaPlayer.create(this, R.raw.music);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event){
        MediaPlayer mp;
        mp = bgMusic;
        mp.seekTo(0);
        switch(keyCode){
        case KeyEvent.KEYCODE_0:
            mp.start();
            break;
        case KeyEvent.KEYCODE_1:
            mp.stop();
            break;
        default:
            return super.onKeyDown(keyCode, event);
        }
        return true;
    }
}
</pre>
<p>うーむ、再度再生を行うときはどうしたらいいんだろうー</p>
<h3>■注意</h3>
<p>エミュレータではなぜかWMAが再生されなかった。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2009/07/30/android%e3%81%a7%e9%9f%b3%e6%a5%bd%e3%82%92%e5%86%8d%e7%94%9f%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>androidで位置情報を取得する</title>
		<link>http://blog.justoneplanet.info/2009/07/08/android%e3%81%a7%e4%bd%8d%e7%bd%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.justoneplanet.info/2009/07/08/android%e3%81%a7%e4%bd%8d%e7%bd%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 09:34:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=1588</guid>
		<description><![CDATA[7/10にHT-03Aの発売が決まってにわかに活気づいてきました。但し、まだまだ日本語文献が少ないですな。特にリファレンスは厳しいな。
■ソースコード

package org.example.locationtest; [...]]]></description>
			<content:encoded><![CDATA[<p>7/10にHT-03Aの発売が決まってにわかに活気づいてきました。但し、まだまだ日本語文献が少ないですな。特にリファレンスは厳しいな。</p>
<h3>■ソースコード</h3>
<pre class="brush: java;">
package org.example.locationtest;

import java.util.List;
import android.app.Activity;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.Bundle;
import android.widget.TextView;

public class LocationTest extends Activity implements LocationListener {
    private static final String[] A = {
        &quot;n/a&quot;,
        &quot;fine&quot;,
        &quot;coarse&quot;
    };
    private static final String[] P = {
        &quot;n/a&quot;,
        &quot;low&quot;,
        &quot;medium&quot;,
        &quot;high&quot;
    };
    private static final String[] S = {
        &quot;out of service&quot;,
        &quot;temporarily unavailable&quot;,
        &quot;available&quot;
    };
    private LocationManager mgr;
    private TextView output;
    private String best;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mgr = (LocationManager) getSystemService(LOCATION_SERVICE);
        output = (TextView) findViewById(R.id.output);

        log(&quot;Location providers:&quot;);
        dumpProviders();

        Criteria criteria = new Criteria();
        best = mgr.getBestProvider(criteria, true);
        log(&quot;\nBest Provider is: &quot; + best);

        log(&quot;\nLocations (starting with last known):&quot;);
        Location location = mgr.getLastKnownLocation(best);
        dumpLocation(location);
    }

    @Override
    protected void onResume(){
    	super.onResume();
    	mgr.requestLocationUpdates(best, 15000, 1, this);
    }
    @Override
    protected void onPause(){
    	super.onPause();
    	mgr.removeUpdates(this);
    }

    public void onLocationChanged(Location location){
    	dumpLocation(location);
    }
    @Override
    public void onProviderDisabled(String provider) {
        log(&quot;\nProvider disabled:&quot; + provider);
    }
    @Override
	public void onProviderEnabled(String provider) {
    	log(&quot;\nProvider enabled:&quot; + provider);
	}
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        log(&quot;\nProvider status changed:&quot; + provider + &quot;, status=&quot; + S[status] + &quot;, extras=&quot; + extras);
    }

    private void log(String string) {
        output.append(string + &quot;\n&quot;);
    }
    private void dumpLocation(Location location) {
        if(location == null){
            log(&quot;\nLocation[unknown]&quot;);
        }
        else{
            log(&quot;\n&quot; + location.toString().replace(&quot;,&quot;, &quot;,\n\t&quot;).replace(&quot;[&quot;, &quot;[\n\t&quot;).replace(&quot;]&quot;, &quot;\n]&quot;));
        }
    }
    private void dumpProviders() {
        List&lt;String&gt; providers = mgr.getAllProviders();
        for (String provider : providers) {
            dumpProvider(provider);
        }
    }
    private void dumpProvider(String provider) {
        LocationProvider info = mgr.getProvider(provider);
        StringBuilder builder = new StringBuilder();
        builder.append(&quot;LocationProvider[&quot;)
            .append(&quot;\n\tname=&quot;)
            .append(info.getName())
            .append(&quot;,\n\tenabled=&quot;)
            .append(mgr.isProviderEnabled(provider))
            .append(&quot;,\n\tgetAccuracy=&quot;)
            .append(A[info.getAccuracy()])
            .append(&quot;,\n\tgetPowerRequirement=&quot;)
            .append(P[info.getPowerRequirement()])
            .append(&quot;,\n\thasMonetaryCost=&quot;)
            .append(info.hasMonetaryCost())
            .append(&quot;,\n\trequiresCell=&quot;)
            .append(info.requiresCell())
            .append(&quot;,\n\trequiresNetwork=&quot;)
            .append(info.requiresNetwork())
            .append(&quot;,\n\trequiresSatellite=&quot;)
            .append(info.requiresSatellite())
            .append(&quot;,\n\tsupportsAltitude=&quot;)
            .append(info.supportsAltitude())
            .append(&quot;,\n\tsupportsBearing=&quot;)
            .append(info.supportsBearing())
            .append(&quot;,\n\tsupportsSpeed=&quot;)
            .append(info.supportsSpeed())
            .append(&quot;\n]&quot;);
        log(builder.toString());
    }
}
</pre>
<p>Javaの配列宣言がPHPやJavaScriptと異なっててどうもしっくりこないな。</p>
<h3>■解説</h3>
<p>@Overrideしているもので、アプリケーションの状態に合わせた挙動の定義をしてる感じですな。今回は、アプリがスタートした時の動作がほとんどなので、結果的にonCreateがメインです。＋privateメソッドでクラス内で必要なメソッドを実装。</p>
<h4>void org.example.locationtest.LocationTest.onCreate(Bundle savedInstanceState)</h4>
<pre class="brush: java;">
super.onCreate(savedInstanceState);
</pre>
<p>スーパークラスのメソッドをコール。</p>
<pre class="brush: java;">
setContentView(R.layout.main);
</pre>
<p>androidのView Wigetを使ってActivityの画面を生成する。</p>
<pre class="brush: java;">
mgr = (LocationManager) getSystemService(LOCATION_SERVICE);
</pre>
<p>LocationManagerオブジェクトを取得し変数に格納。</p>
<pre class="brush: java;">
output = (TextView) findViewById(R.id.output);
</pre>
<p>Resource IDに基づいてAndroid Viewを探す。</p>
<pre class="brush: java;">
Criteria criteria = new Criteria();
</pre>
<p>Criteriaオブジェクトの生成。location providerの選択のためにapplicationの尺度を示すらしい。</p>
<pre class="brush: java;">
best = mgr.getBestProvider(criteria, true);
</pre>
<p>状況に応じた最良のセンサー名をbest変数に格納する。</p>
<pre class="brush: java;">
Location location = mgr.getLastKnownLocation(best);
</pre>
<p>センサーによっては位置を取得するのに時間がかかるので最後に取得した値を利用する。</p>
<h4>void org.example.locationtest.LocationTest.onResume()</h4>
<p>アプリがforegroundに復活した時の挙動を定義。</p>
<pre class="brush: java;">
super.onResume();
mgr.requestLocationUpdates(best, 15000, 1, this);
</pre>
<p>スーパークラスのメソッドをコール。位置情報の定期更新を設定する。</p>
<h4>void org.example.locationtest.LocationTest.onPause()</h4>
<p>アプリがbackgroundにある時の挙動を定義。</p>
<pre class="brush: java;">
super.onPause();
mgr.removeUpdates(this);
</pre>
<p>スーパークラスのメソッドをコール。アップデートを休止する（位置情報の更新を無効にする）。</p>
<h4>void org.example.locationtest.LocationTest.dumpProviders()</h4>
<pre class="brush: java;">
for (String provider : providers) {
    dumpProvider(provider);
}
</pre>
<p>JDK5.0からできるようになった記法らしい。コロンの右側に配列（もしくはコレクション）を配置しループをぶん回せる。ちなみにこの記法はJavaScriptでは使えない。</p>
<h4>void org.example.locationtest.LocationTest.log(String string)</h4>
<pre class="brush: java;">
output.append(string + &quot;\n&quot;);
</pre>
<p>引数のstringが出力に追加されるイメージですな。</p>
<h3>■画面</h3>
<p>こんな風に表示されます。</p>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/07/gps.png" rel="lightbox[1588]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/07/gps-166x300.png" alt="gpsのデータ" title="gps" width="166" height="300" class="size-medium wp-image-1592" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2009/07/08/android%e3%81%a7%e4%bd%8d%e7%bd%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android入門</title>
		<link>http://blog.justoneplanet.info/2009/06/06/android%e5%85%a5%e9%96%80/</link>
		<comments>http://blog.justoneplanet.info/2009/06/06/android%e5%85%a5%e9%96%80/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 13:47:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=1541</guid>
		<description><![CDATA[昨日まではPHP漬けでしたが、今日からはモバイル漬けになります。だってそんな時代だもん。
■Android SDKのダウンロード
http://developer.android.com/sdk/
170MBもありますな [...]]]></description>
			<content:encoded><![CDATA[<p>昨日まではPHP漬けでしたが、今日からはモバイル漬けになります。だってそんな時代だもん。</p>
<h3>■Android SDKのダウンロード</h3>
<p><a href="http://developer.android.com/sdk/">http://developer.android.com/sdk/</a></p>
<p>170MBもありますな。</p>
<h3>■Android Development Toolkit(ADT)をインストール</h3>
<p>ヘルプ&gt;ソフトウェアの更新&gt;Available Softwareのタブをクリックする。そして「サイトの追加」のボタンを押す。するとURLを入力できる。</p>
<p>文献によっては以下のURLが指定してあるが、実は現在このURLを指定すると「Not Repository」みたいな事を言われてしまう。</p>
<pre class="brush: bash;">

https://dl-ssl.google.com/android/eclipse/
</pre>
<h4>正しいURL</h4>
<pre class="brush: bash;">

https://dl-ssl.google.com/android/eclipse/site.xml
</pre>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/06/cap.png" rel="lightbox[1541]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/06/cap-300x187.png" alt="サイトの追加" title="サイトの追加" width="300" height="187" class="size-medium wp-image-1542" /></a></p>
<h3>■SDKとEclipseの紐付け</h3>
<p>Eclipse側からSDKが「どこにあるのか？」を分かるようにしてあげる作業。個人的な趣味によりCドライブ直下にする。</p>
<h4>パス</h4>
<p>以下のように配置したとする。</p>
<pre class="brush: php;">
C:\android-sdk-windows-1.5_r2
</pre>
<h4>Eclipseの設定</h4>
<p>「ウィンドウ&gt;設定&gt;Android」の順でメニューをたどると「参照」のボタンがあるのでクリックし、上述のパス（ディレクトリ）を指定する。</p>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/06/cap02.png" rel="lightbox[1541]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/06/cap02-300x240.png" alt="Eclipseの設定" title="Eclipseの設定" width="300" height="240" class="size-medium wp-image-1550" /></a></p>
<p>以上で開発環境の構築は終了。これが長過ぎると人間やる気を無くすってもんだ。今回はサクッと片付いた。</p>
<h3>■Hello, Androidアプリケーション</h3>
<p>新規でAndroidプロジェクトを開始し以下のように入力するだけで完成する！</p>
<dl>
<dt>プロジェクト名</dt>
<dd>Hello</dd>
<dt>パッケージ名</dt>
<dd>org.example.hello</dd>
<dt>アクティビティ名</dt>
<dd>Hello</dd>
<dt>アプリケーション名</dt>
<dd>Hello, Android</dd>
</dl>
<h4>ソースコード</h4>
<p>今回は全くソースコードを触らないが一応ファイルを見てみると以下のような感じになってた。</p>
<pre class="brush: java;">
package org.example.hello;

import android.app.Activity;
import android.os.Bundle;

public class Hello extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
</pre>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/06/emu.png" rel="lightbox[1541]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/06/emu-300x251.png" alt="エミュレータで実行" title="emu" width="300" height="251" class="size-medium wp-image-1553" /></a></p>
<p>※初めてエミュレータを起動すると設定画面が出る（適当な名前とターゲットSDKのバージョンを指定する）。</p>
<p>なんかAndroidの携帯が欲しくなった。</p>
<div class="kakomi">
<h4>参考</h4>
<p><a href="http://developer.android.com/">http://developer.android.com/</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2009/06/06/android%e5%85%a5%e9%96%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
