Tips


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Android Market にアップロードする際の注意点

  • 日本語版IE7でDescription に改行を入力すると、Publish、Save ボタンが機能しなくなる。(2008年11月8日現在)
他のブラウザ(Chrome)なら問題なし。
(報告はしたので、そのうちに対応してくれるかも)

  • 呼ばれないメソッドでも、ダウンロードの際にチェックされるようで、その中に変なコードがあると、ダウンロードが出来ない。
エミュレーターではエラーにならないので、実機でないと分からない。
動作しない不要なコードは削除したほうが良い。

sdk m5 → β で修正が必要な部分

  • MapActivity
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-library android:name="com.google.android.maps"/> ←applicationタグの中に入れる
com.google.android.maps.Point → com.google.android.maps.GeoPoint
Point → GeoPoint
zoomTo → setZoom
isRouteDisplayed()をOverrideする

  • GPS
AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_LOCATION"/>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

  • Menu
menu.add(0, 1, "表示する内容") → menu.add(0, 1, Menu.NONE, "表示する内容");
onMenuItemSelected(int featureId, Item item) → onMenuItemSelected(int featureId, MenuItem item)
getId → getItemId

  • AlertDialog
AlertDialog.show(this, タイトル, 任意の整数, 本文, ボタン1の表示, false);

ab = new AlertDialog.Builder(this);
ad = ab.create();
ad.setButton("ボタン1の表示", this);
ad.setButton2("ボタン2の表示", this); ←表示しない場合は不要
ad.setTitle("タイトル");
ad.setMessage("メッセージ");
ad.show();

  • データベース
import android.database.sqlite.SQLiteOpenHelper|>|
first → moveToFirst
count → getCount
以下openまでの例

private SQLiteDatabase db;
private static final int DATABASE_VERSION = 2;
private static final String DATABASE_NAME = "データベースのファイル名";
private DatabaseHelper mDbHelper;

mDbHelper = new DatabaseHelper(this);
db = mDbHelper.getWritableDatabase();

private static class DatabaseHelper extends SQLiteOpenHelper {
   DatabaseHelper(Context context) {
       super(context, DATABASE_NAME, null, DATABASE_VERSION);
   }
   @Override
   public void onCreate(SQLiteDatabase db) {
       db.execSQL("テーブル作成のSQL文");
   }
   @Override
   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
       db.execSQL("DROP TABLE IF EXISTS notes");
       onCreate(db);
   }
}


  • BroadcastReceiverとServiceの違い
起動元のプログラムを終了した場合 Context
BroadcastReceiver 起動しない(m5のIntentReceiverでは起動した) 継承していない
Service 起動する 継承している

Proxy(プロキシ)の設定方法

プロキシ経由でしかインターネットに接続できない環境では、Android上の通信機能が使えません。
ブラウザを開いて検索しても"Network Error 32"とエラーが出てしまいます。
プロキシ経由で通信するためには以下のように設定します。
  1. emulator.exeを起動し、待ち受け画面が出るまで待つ
  2. emulator.exeがある場所でプロンプトを開く
  3. "adb shell"と打ってEnter
  4. "#"が表示されたら、"setprop net.gprs.http-proxy http://hoge:8080"と打つ。
    ※「hoge」はプロキシーのアドレス、8080はプロキシのポート番号に置き換えてください。
プロキシ認証にも対応しているようです。
しかし、GoogleMapsアプリはプロキシ経由では使用できないようです。
(プロキシ設定しても、DNSサーバーを見に行ってしまう。)

こんな情報もあります。こっちはGoogleMapsもいけるのかな??

エミュレータのスキンを変える方法

emulator -skin HVGA-L
emulator -skin HVGA-P
emulator -skin QVGA-L
emulator -skin QVGA-P

ユーザーデータの場所

デフォルトでは、
Linux or Mac OSX ~/.android/userdata.img
Windows C:\Documents and Settings\ユーザー名\Local Settings\Application Data\Android\userdata.img
にあります。
自作 アプリケーションのアンインストール方法が見当たらない ようなのでこのイメージファイルを消したり、リネームすることで初期状態に戻すことが出来ます。あるいはwipe-dataオプションを付けてエミュレータを起動すると、エミュレータを初期化できます。
$ emulator -wipe-data

localhostに接続する

エミュレータ上のアプリからエミュレータと同じPC上のサーバーと通信する場合、127.0.0.1やlocalhostでは接続できないので、PCのIPアドレスを調べて、それを使うことで接続できます。
ネタ元:Androidでlocalhostに接続

WebカメラをAndroid上で使う方法


sdk m3-rc37a → m5-rc14 で修正が必要な部分

  • AndroidManifest.xml
activity class → activity android:name
action android:value → action android:name
category android:value → category android:name

GPSを使用している場合は以下を追加( ネタ元:りょうさん
<uses-permission android:name="android.permission.ACCESS_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_GPS"/>

  • xmlファイル(画面のレイアウトを設定している場合)
id → android:id

  • ソース
ダイアログ表示
AlertDialog.show(this, タイトル, 本文, ボタン1の表示, this, false, null);

AlertDialog.show(this, タイトル, 任意の整数, 本文, ボタン1の表示, false);

データベース
query(sql, null) → rawQuery(sql, null)

各UI
デカイ!
面積で4倍になった感じ。
レイアウトの基本設計から修正が必要になるかも。

ContentUri

Uri

m3-rc37aまで m5-rc14
new ContentURI(String) Uri.parse(String)
ContentURI.create(String) Uri.parse(String)
ContentUri.countPathSegments() Uri.getPathSegments().size()
ContentUri.getPathSegment() Uri.getPathSegments().get()
or
Uri.getLastPathSegment()
ContentURI.addPath() Uri.Builder.appendPath()
ContentURI.addId(id) uri = Uri.withAppendedPath(SOME_URI, id);
or
uri = ContentUris.appendId(uri.buildUpon(), id).build();


他にあれば、追記をお願いします。
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。