Android

2011年5月4日水曜日

あおたんのグルグルライブカレンダー

あおたんシリーズ第2弾!
あおたんのグルグルライブカレンダーをリリースしました。
こちらからダウンロードできます。

待ち受け画面でいつでもあおたんに会えますよ!!


あおたんのおやぢくさいけど、ちょっと哀愁漂う姿と、はなちゃんのつれなさそうなクールビューティなイラストシリーズでお届けする、グルグルまわるカレンダー壁紙!
背景は十二ヶ月分をテーマにしていますがお気に入りのものを自由に選べるようになっています。






2011年5月3日火曜日

AdMob SDK 4.0.4導入

AdMob SDK の導入にあたり、ググってみたけど古い情報が多いので、新しいSDKについてまとめてみました。


  1. 用意

  2. 当然のことながら最初はAdMobへの登録とSDKのダウンロードします。
    ここは他のサイトにも解説はあるし、英語を見ながら指示にしたがって頑張ってください。
    広告を貼ろうと思っているアプリを登録してパブリッシャー IDをもらうのもお忘れなく。

  3. ライブラリのコピーと登録

  4. プロジェクトにlibフォルダを追加します。
    ダウンロードしたファイルを解凍して出てきた GoogleAdMobAdsSdk-4.0.4.jar をlibフォルダにコピーします。その後、ビルド・パス→ビルド・パスの構成→ライブラリー→JARの追加でファイルをプロジェクトに追加します。

    ※ライブラリをプロジェクト外において、ビルド・パス→ビルド・パスの構成→ライブラリー→外部JARの追加でもできるはずです。

  5. Manifest

  6. AndroidManifest.xmlの変更点は次の2つだけです。
    1. <application>タグ内にActivityを追加します。
      1. <activity android:name="com.google.ads.AdActivity"  
      2.    android:configChanges="keyboard|keyboardHidden|orientation">  
      3. </activity>  
    2. permissionを2つ追加します。元からこれらのpermissionがある場合はなにもしません。
      1. <uses-permission android:name="android.permission.INTERNET" />  
      2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  

  7. Layoutの修正

  8. 広告を表示したいViewに広告用のLinearLayoutを追加します。追加したLinearLayoutは、あとでプログラムで参照するのでIDをつけます。IDの名前はなんでも構いません。たとえばこんな感じ。
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <RelativeLayout  
    3.  xmlns:android="http://schemas.android.com/apk/res/android"  
    4.  android:layout_width="fill_parent" android:layout_height="fill_parent">  
    5.  <!-- 広告表示用のLinearLayout -->  
    6.  <LinearLayout android:id="@+id/admob"  
    7.   android:layout_width="fill_parent"  android:layout_height="wrap_content"  
    8.   android:layout_alignParentTop="true" />  
    9.  <!-- ここから下は任意 -->  
    10.  <TextView android:id="@+id/header"  
    11.   android:layout_width="fill_parent" android:layout_height="wrap_content"  
    12.   android:layout_below="@+id/admob"  
    13.   android:gravity="center"  
    14.    android:text="Header" />  
    15.  ....  
    16. </RelativeLayout>  
    ここで追加したのは6~8行目で、この例ではViewの一番上に広告が表示されるようにLayoutしてみました。
    ここで重要なのは広告用のLinearLayoutがView内に追加されることです。
    ※LinearLayoutでなくとも良いような気もしますが、深く考えずに…。

  9. codeの追加

  10. 広告を表示するActivityのonCreateあたりに広告用のコードを追加します。 ここでやるべきことは2つだけです。
    1. AdViewを作成して先程追加した広告用のLinearLayoutにaddViewします。
    2. AdRequestを作成してAdViewの広告読み込みを開始させます。
    具体的には次のような感じになります。
    1. private final static String AD_UNIT_ID = "...............";  
    2.       //AdModからもらったパブリッシャーID  
    3.   
    4. @Override protected void onCreate(Bundle savedInstanceState) {  
    5.  super.onCreate(savedInstanceState);  
    6.  setContentView(R.layout.main);   //広告用のLinearLayoutを含むLayout  
    7.   
    8.  //AdMob  
    9.  AdView adView = new AdView(this, AdSize.BANNER, AD_UNIT_ID); //広告Viewを作成  
    10.  LinearLayout layout = (LinearLayout)findViewById(R.id.admob); //LinearLayoutを探す  
    11.  layout.addView(adView);           //広告Viewを追加  
    12.   
    13.  AdRequest request = new AdRequest();       //広告のリクエストを作成  
    14.  //request.setGender(Gender.FEMALE);        //いろんな設定がここでできる。  
    15.  //request.setTesting(true);          //Debug Mode リリース時は外す!  
    16.  adView.loadAd(request);           //リクエスト発行  
    17.   ...  
    18. }  
    AdRequestに設定するパラメータで広告のターゲッティングなどが行えるようです。
    AdRequestの設定関係Methodには次のようなものがあります。
      .setBirthday("20110503");
      誕生日を設定?
      .setGender(AdRequest.Gender.FEMALE or AdRequest.Gender.MALE );
      性別を設定。
      .setLocation(Location location);
      位置の設定。
      .setKeyword("Keyword");
      キーワードの指定。
    ※ちなみに条件を付けない方が広告の表示率が良いとか言う話を聞きます。



ということで、これだけでアプリに広告がでますよ~♪。

2011年4月27日水曜日

あおたんのすいすいスライディングパズル リリースしました。

あおたんのすいすいスライディングパズルをリリースしました。
こちらからダウンロードできます。
暇つぶしにどうぞ…。


一応 15パズル的なゲームなのですが 4x4だけではなく
5x5, 6x6, 7x7まで遊べます。

7x7はかなり根気が要りますが、達成感がありますよ。

ただ、4”くらいの携帯電話ではちょっと厳しいかも。
タブレット端末を持っている方はぜひチャレンジしてください。






2011年4月20日水曜日

津波にのまれたノートPCの続き

1週間たったのでHDDに電源を入れてみた。
スピンドルは正常に回ったが、カツン・カツンと音がする。
やっぱダメかぁ・・・。
まあ、お金かければ復旧する方法もあるんだろうけど、そこまですることもないみたいだし、あきらめてもらうことにします。

ただ、一緒に引き上げてきた無線LANルータは同じように水洗いして乾燥させたら無事息を吹き返しました。(コネクタとかスイッチの一部は錆が出てたけど。)

2011年4月14日木曜日

津波にのまれたノートPC

先の震災で気仙沼で津波にのまれたノートパソコンを発掘してきました。
とりあえずこんな感じで発見されました。約1ヶ月間瓦礫の下に埋もれてました。

今からのデータのサルベージにトライします。


内部はまだ塩水でべとべとです。




分解してみました。最初は、洗えばなんとかレストアできるかなとかあまい考えをもっていたのですが…



もう、洗えば何とか・・・とか言う次元ではないですね。金属部分には錆がでており、樹脂部分は腐食してボロボロになっています。
とりあえず、HDDからデータだけでもサルベージできればラッキーとします。

HDDも塩まみれ。コネクタ部や他の金属部分にはまだ錆が出てないようです。
とりあえず取り出し塩が固着した部分を水洗い。

Discの機構内部まで浸水してたり、モータがさび付いてたらアウトです。
今から乾燥剤と一緒にジップロックに入れて一週間以上乾燥させてから通電にトライしてみます。
運よくデータが読み出せるようになればいいのですが…。
見た目から想像するにかなり可能性低め。あとは神だのみです。

2011年3月4日金曜日

雛祭りスマートフォン講座

ちまたで特集してるスマフォ女子は、PCの変わりにガンガン使おうと言うビジネス女子が多い!
だけど、携帯を使ってて、別に仕事で使いたいとは思わないけど新しい携帯を買うんだったら
スマートフォンにしたいよねっていう女子の為に
お気楽・お気軽・お手軽! でも、三倍楽しいスマフォライフ
を提供したいとなんの指針もなく急遽スマフォ講座をしました。

内容は

スマートフォンって
  • 電話ができる
  • メールができる
  • パソコンのまねが出来る
  • インターネットができる
  • 暇つぶしも出来る
  • 友達も出来る
  • ブログも出来る
  • 自分色に出来る
を説明してきました。

Ustreamで録画して置いたので興味のある方、見てください。

2011年2月16日水曜日

GoogleMapをIntentで表示する。

GoogleMapをIntentで表示するだけなら簡単なのだが、パラメータの渡し方に色々とくせがあるようです。

まず、GoogleMapをIntentで起動し表示する基本的なコードは次の通りです。


  1. public class GoogleMapTestActivity extends Activity {  
  2.  /** Called when the activity is first created. */  
  3.  @Override  
  4.  public void onCreate(Bundle savedInstanceState) {  
  5.   super.onCreate(savedInstanceState);  
  6.   setContentView(R.layout.main);  
  7.     
  8.     
  9.   String mapurl = "geo:38.230844,140.323316";  //←ここの書き方で動作が微妙に変わる!  
  10.   
  11.   Intent intent = new Intent();  
  12.   intent.setAction(Intent.ACTION_VIEW);  intent.setClassName("com.google.android.apps.maps","com.google.android.maps.MapsActivity");  intent.setData(Uri.parse(mapurl));  
  13.   startActivity(intent);  
  14.  }  
  15. }  
ここで、mapurlの部分の書き方によりいろんなパターンが指定できます。
ちなみにこの情報はGoogleMap アプリのバージョンで変わる可能性があります。
  1. 座標指定

  2. mapurl = "geo:latitude,longitude"と指定した場合、 指定位置を中心とした地図を表示する。
    その位置にPinは表示しない。
    戻るボタン一回で元アプリに戻る。

  3. ピンを立てたい

  4. mapurl = "geo:0,0?q=latitude,longitude"と指定した場合、 最初に(0,0)を指定、つまり現在位置の地図を表示する。
    その後、latitude,longitudeで指定した位置を検索し検索位置を中心とした地図に移動する。
    (検索位置への移動はアニメーション効果あり。)
    0,0の代わりにlatitude,longitudeを指定すれば移動アニメーションは発生しないが、やはり動作は2段階になる。
    指定位置にはピンを表示する。
    戻るボタンは一回目で検索前の画面(つまりピンがない状態)に戻り、 2回目で元のアプリに戻る。
    プログラム的には微妙に使いにくい。

  5. ズーム指定

  6. mapurl = "geo:latitude,longitude?z=xx"でズーム指定ができます。
    xxは1~23で1を指定すると全世界表示、23で最大拡大になります。
    ただし、位置を指定して?z=1を指定するとエラーになることがある!
    あくまでめやすですが、13~15で市町村サイズ・10~11で都道府県サイズ・6で日本全土サイズくらい。
    今のところ、上記2の検索とズーム指定は組み合わせできないようだ…。
と言うことで、IntentでGoogleMapを表示してみたけど、やはりキチンとした表示を行うならMapViewを使って自ら制御するしかない??