Android SDKの導入

Android
Eclipse

Android SDKの導入

Eclipse Version: 3.4.1

Androidアプリケーション開発のために、Android SDK(Software Develppment Kit)の導入をします。
Eclipseのプラグインとして導入します。[[:Eclipseの導入は終わっているものとします。

以下、手順です。

  • 下記のサイトから、環境にあったAndroid SDKをダウンロードして解凍します。

http://developer.android.com/sdk/index.html

  • Eclipseのリモートアップデートサイトに、下記のURLを指定します。

https://dl-ssl.google.com/android/eclipse/

  • ダイアログに従い、設定が完了いsたら、一度再起動します。
  • Window→Preference→Androidをクリックします。
  • SDK Locationに先ほどAndroid SDKを解凍した場所を指定します。
  • WindowからAndroid SDK and AVD Managerを選択します。
  • 左側のウィンドウ内のAvailable Packagesをクリックします。
  • 右側に出るリポジトリの選択肢の中から、必要なAPIのバージョンを選択します。すべて選択すると、かなりの容量なので、気をつけましょう。
  • これで完了です。先ほどのAndroid SDK and AVD Managerの、Virtual Devicesというところから、エミュレーターが起動できます。

iPhone、Androidアプリ開発依頼はこちら

Webシステム開発依頼はこちら

Android SDKのEclipseにEclipse marketplaceを追加する

Android
Eclipse

Android SDKのEclipseにEclipse marketplaceを追加する

GoogleがAndroid SDKとして配布しているEclipseにはEclipse Maketplaceがありません。
今回私は、Gradleのプラグインを入れようとして
「Eclipse Maketplace??ふぇぇー」
となりました。

Android SDKのEclipseには、自分でまずEclipse Maketplaceを追加しないといけないようです。

方法です。

  1. help→Install New Softwareで、Work withというところで「Juno」を

選択

  1. General Purpose Toolsを選択し、Eclipse Marketplaceを選択
  2. Eclipseを再起動

(参考)
http://stackoverflow.com/questions/17283486/where-is-eclipse-marketplace-in-android-sdk

Android SDK 縦画面を横にする

Android

Android SDK AVD 縦画面を横にする

Android SDKの中に入っているAVD(Android Virtual Devices)を横向きにするには、Ctrl+F12です。

  • カーソルキー12キーを押しても画面が回転しませんこの場合どうすればいいのでしょうか — 久村 {2014-07-19 (土) 18:58:02}

Android SDK Windows7 64bit JDK not found

Android

Android SDK r12が Windows7 64bit環境でJDK not foundでインストールできない

Androidの開発を始めよう!というとき、Android SDKを下記のサイトからダウンロードしてインストールします。
http://developer.android.com/sdk/index.html

しかし、Windows7 64bit環境では、JDKをインストールしているにも関わらず、インストーラー付きは「Java SE Development Kit(JDK) not found」というメッセージが表示され、先に進みません。
残念ですが、Zip版をダウンロードして、自分で設定したほうがよさそうです。

世界中にも、これで困っている人が多くいるようです。
早く修正してほしいですね!
http://superuser.com/questions/221944/huh-jdk-not-found-on-windows-7-64-bit

  • JDK7でインストールしてみたらできました。 — りっきぃ {2011-08-07 (日) 20:14:24}
  • りっきぃさん、情報ありがとうございます! — A {2011-08-09 (火) 10:59:26}

Android PendingIntentのフラグ

Android

Android PendingIntentのフラグ

PendingIntentは今すぐスタートするIntentではないけど、タイミングが来たら使うよー というIntentです。

 PendingIntent replyPendingIntent =
        PendingIntent.getActivity(context, 0, replyIntent,
                        PendingIntent.FLAG_UPDATE_CURRENT);

などとして作ります。

今回私がハマってしまったのは、Android Wearの開発にて出てきた次のような問題です。

  1. メッセージ受信
  2. そのメッセージを音声で返事する

というものですが、2回目以降の音声の返事が、1回目のしか取れない…。

なーんでかっ。

というと、下記のようにやっていたのですが

 Intent intent = getIntent();
 CharSequence voice_massage = getMessageText(intent);
 
 private CharSequence getMessageText(Intent intent) {
    Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);
    if (remoteInput != null) {
        return remoteInput.getCharSequence(EXTRA_VOICE_REPLY);
    }
    return null;
 }

そもそも、このgetIntent()で取得するIntentの中身が2回目以降更新されていない。
最初は、Intentに設定するフラグの方がおかしいのかな?
と思ってました。

 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

というアレです。

しかし、これではなく、PendingIntentにつけるフラグが問題だったんです。
3番目の引数のフラグは、FLAG_CANCEL_CURRENTでないといけなかったんですね。
一番最初に書いた、PendingIntentのコードは下記のようになります。

 PendingIntent replyPendingIntent =
        PendingIntent.getActivity(context, 0, replyIntent,
                        PendingIntent.FLAG_CANCEL_CURRENT);

下記の公式ドキュメントを見ますと、
http://developer.android.com/reference/android/app/PendingIntent.html

FLAG_UPDATE_CURRENT…既存のPendingIntentがあれば、それはそのままでextraのデータだけ置き換える

FLAG_CANCEL_CURRENT…既存のPendingIntentがあれば、それをキャンセルして、新しいPendingIntentを実行する

ということです。
今回はIntent自体新しくしないといけなかったので、FLAG_CANCEL_CURRENTを選択しないといけなかったわけですね!

メッセージは新しくなっていたので、フラグのことを気にしていなかったのですが、なんか意外な落とし穴でした!