Froyo以前のバージョンでは信頼できない証明書を受け入れるかどうかを選択する方法が提供されていないらしい。
しかも、警告も何もなしに読み込みを停止しちゃうので真っ白になる。
その解決方法がプライベートAPIを使ったものなのだけど、プライベートAPIの使い方が、「え?それでいいの?」って感じ。
Android WebView with https loadUrl shows blank/empty page
2011年5月19日木曜日
2011年4月8日金曜日
AndroidでSystem.outとSystem.errをLogに転送する
Androidでは、System.outとSystem.errがLogに転送されているけれど、
任意のプライオリティと任意のタグでLogに転送するコードを作ってみた。
ついでに、はじめてGistを使ってみた。
Gistで保存するコードの先頭には、コピーライトとか書かない方がいいのかもなぁ。
おもいっきりプライベートなAPI使ってるから良くない子に分類されるだろう。
任意のプライオリティと任意のタグでLogに転送するコードを作ってみた。
ついでに、はじめてGistを使ってみた。
Gistで保存するコードの先頭には、コピーライトとか書かない方がいいのかもなぁ。
おもいっきりプライベートなAPI使ってるから良くない子に分類されるだろう。
2011年3月31日木曜日
JavaでJSONしたい
JavaでJSONを扱うためのライブラリはたくさんあるなぁ
どれを使ったらいいんだろう?
ちょっと古い記事だけど、A Review of 5 Java JSON Libraries が参考になりそう。
この記事で取り上げているのは次の5つ。
www.json.orgに18ものライブラリが掲載されていると書いてあるが、
その中からどういう基準で5つを選んだのか気になるところ。
それでも、これらの中のどれかを状況に合わせて選択すれば今を生きていくには十分だろう。
「とりあえずJSON使っておく?」
みたいな状況だったら JSON.simple を使えば良さそう。
ところで、AndroidのSDKにはorg.json.JSONObjectなどが用意されている。
パッケージ名から類推して org.json のコードが使われているのかと思っていたら間違いだった。
[platform/libcore.git] / json / src / main / java / org / json / JSONObject.java
ここのソースのコメントに、
// Note: this class was written without inspecting the non-free org.json sourcecode.
と書いてある。
オリジナルってことかな?
どれを使ったらいいんだろう?
ちょっと古い記事だけど、A Review of 5 Java JSON Libraries が参考になりそう。
この記事で取り上げているのは次の5つ。
www.json.orgに18ものライブラリが掲載されていると書いてあるが、
その中からどういう基準で5つを選んだのか気になるところ。
それでも、これらの中のどれかを状況に合わせて選択すれば今を生きていくには十分だろう。
「とりあえずJSON使っておく?」
みたいな状況だったら JSON.simple を使えば良さそう。
ところで、AndroidのSDKにはorg.json.JSONObjectなどが用意されている。
パッケージ名から類推して org.json のコードが使われているのかと思っていたら間違いだった。
[platform/libcore.git] / json / src / main / java / org / json / JSONObject.java
ここのソースのコメントに、
// Note: this class was written without inspecting the non-free org.json sourcecode.
と書いてある。
オリジナルってことかな?
2011年2月28日月曜日
AndroidでRSAを使ってみた
RSAでの暗号化と復号化のシンプルなサンプルコードを書いてみた。
ポイントは、Cipherのインスタンスを取得するときに、
フィードバックモードとパディングをちゃんと指定すること。
Cipher.getInstance("RSA") // これは悪い例!
同じJavaVM環境なら、こうやって書いても期待通りに動いてしまう。
フィードバックモードおよびパディングを省略すると、
プロバイダ固有のデフォルト値が使われると書いてある。
同じJavaVM環境ならプロバイダーが同じだからデフォルト値も同じなので問題がないというわけ。
ところが、
Sun(Oracle)のJREやJDKにバンドルされているJCEプロバイダのデフォルトはSunJCEで、
Androidの場合はBouncyCastleのようだ。
SunJCEの場合
"RSA"は"RSA/ECB/PKCS1Padding"
がデフォルトみたい。
BouncyCastleの場合は
"RSA"は"RSA/None/NoPadding"
がデフォルトみたい。
これらはたまたま手元の環境で動かしたらそうなっただけで、
デフォルト値が未来永劫変わらない保証はない。
というわけで、フィードバックモードとパディングを省略すると
サーバとAndroid端末の間で渡したデータを復号化できなくなると思った方がよい。
public static byte[] encrypt(byte[] data) throws InvalidKeySpecException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { final Key publicKey = KeyFactory .getInstance("RSA") .generatePublic(new X509EncodedKeySpec(PUBLIC_KEY_BYTES)); final Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); return cipher.doFinal(data); }
public static byte[] decrypt(byte[] data) throws InvalidKeySpecException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { final Key privateKey = KeyFactory .getInstance("RSA") .generatePrivate(new PKCS8EncodedKeySpec(PRIVATE_KEY_BYTES)); final Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); cipher.init(Cipher.DECRYPT_MODE, privateKey); return cipher.doFinal(data); }
ポイントは、Cipherのインスタンスを取得するときに、
フィードバックモードとパディングをちゃんと指定すること。
Cipher.getInstance("RSA") // これは悪い例!
同じJavaVM環境なら、こうやって書いても期待通りに動いてしまう。
フィードバックモードおよびパディングを省略すると、
プロバイダ固有のデフォルト値が使われると書いてある。
同じJavaVM環境ならプロバイダーが同じだからデフォルト値も同じなので問題がないというわけ。
ところが、
Sun(Oracle)のJREやJDKにバンドルされているJCEプロバイダのデフォルトはSunJCEで、
Androidの場合はBouncyCastleのようだ。
SunJCEの場合
"RSA"は"RSA/ECB/PKCS1Padding"
がデフォルトみたい。
BouncyCastleの場合は
"RSA"は"RSA/None/NoPadding"
がデフォルトみたい。
これらはたまたま手元の環境で動かしたらそうなっただけで、
デフォルト値が未来永劫変わらない保証はない。
というわけで、フィードバックモードとパディングを省略すると
サーバとAndroid端末の間で渡したデータを復号化できなくなると思った方がよい。
2011年1月26日水曜日
Android Screenshots, Screen Capture, Screen Cast
これは便利だ。
USB接続したAndroidの画面をどんどんキャプチャ―してPNGに保存してくれる。
Android Screenshots, Screen Capture, Screen Cast
AndroidScreenCapture-1.1.zipをダウンロードして実行。
android-sdk_r08-windows.zipでは動かない。
android-sdk_r07-windows.zipを使ったら動いた!
sdkのディレクトリ構造が変わったのが原因だろうな。
ダウンロードはsourceforgeから。
USB接続したAndroidの画面をどんどんキャプチャ―してPNGに保存してくれる。
Android Screenshots, Screen Capture, Screen Cast
AndroidScreenCapture-1.1.zipをダウンロードして実行。
android-sdk_r08-windows.zipでは動かない。
android-sdk_r07-windows.zipを使ったら動いた!
sdkのディレクトリ構造が変わったのが原因だろうな。
ダウンロードはsourceforgeから。
2011年1月13日木曜日
Google APIsとGALAXY Tabのエミュレータ
android-sdkでSamsung GALAXY Tabのエミュレータを簡単に作成できる。
でも、残念ながらGoogle APIs、たとえばGoogle Maps APIを使ったapkを実行できない。
しかたがないので600x1024サイズのAVDを使うことにする。
Google APIs(Google Inc.) - API Level 8をTargetにしたAVDを作成してから、
~/.android/avd/AVDNAME.avd/config.iniのskin.pathを
add-ons/addon_galaxy_tab_samsung_electronics_8/skins/GALAXY Tab
にすると、GALAXY Tabの画面サイズにできる。
動作に影響はしないみたいだけれどskin.nameもGALAXY Tabにしておいた。
でも、残念ながらGoogle APIs、たとえばGoogle Maps APIを使ったapkを実行できない。
しかたがないので600x1024サイズのAVDを使うことにする。
Google APIs(Google Inc.) - API Level 8をTargetにしたAVDを作成してから、
~/.android/avd/AVDNAME.avd/config.iniのskin.pathを
add-ons/addon_galaxy_tab_samsung_electronics_8/skins/GALAXY Tab
にすると、GALAXY Tabの画面サイズにできる。
動作に影響はしないみたいだけれどskin.nameもGALAXY Tabにしておいた。
2010年11月30日火曜日
現在のdalvik VMはアプリのヒープを16Mに制限している
http://groups.google.com/group/android-framework/msg/cda4cd5d5da2b2d8 から引用。
the VM currently limits app heaps to 16MB.
This allows for a reasonable number of apps to run.
ふーん。
the VM currently limits app heaps to 16MB.
This allows for a reasonable number of apps to run.
ふーん。
NTTドコモのAndroid端末のユーザーエージェント
FAQに書いてあった。
弊社Android端末標準webブラウザのユーザーエージェントは、下記のとおりとなります。
端末 | ファームウェア バージョン (ビルド番号) | ユーザーエージェント |
HT-03A | Android 1.5 | Mozilla/5.0 (Linux; U; Android 1.5; ja-jp; HT-03A Build/CDB72) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 |
Android 1.6 | Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; Docomo HT-03A Build/DRD08) AppleWebKit/528.5+(KHTML, like Gecko) Version/3.1.2 Mobile Safari/ 525.20.1 | |
Xperia™ | Android 1.6 (R1EA018) | Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; SonyEricssonSO-01B Build/R1EA018) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 |
Android 1.6 (R1EA025) | Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; SonyEricssonSO-01B Build/R1EA025) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 | |
Android 1.6 (R1EA029) | Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; SonyEricssonSO-01B Build/R1EA029) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 | |
Android 2.1 (2.0.B.0.138) | Mozilla/5.0 (Linux; U; Android 2.1-update1; ja-jp; SonyEricssonSO-01B Build/2.0.B.0.138) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 | |
LYNX SH-10B | Android 1.6 | Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; SH-10B Build/S7023) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 |
GALAXY S | Android 2.2 | Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-02B Build/FROYO) AppleWebKit/533.1(KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 |
GALAXY Tab | Android 2.2 | Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-01C Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 |
2010年11月17日水曜日
Androidでスクリーンの方向を指定してみたらもやもやした
ゲームとかで画面の表示方向を固定したいことがある。
AndroidManifest.xmlでactivityのscreenOrientation属性で指定する方法が一般的だと思う。
この指定は実行時に変更することができる。
縦長固定に変える
横長固定に変える
システムに決めてもらう
「システムに決めてもらう」設定にしておくと、重力センサーなどに従って、自動的に自然な方向に回転したりする。
普通の時は自由に回転させておくけれど、ボタンを押したときには「その時の方向で固定」したいこともある。
世の中には正方形のデバイスもあるらしい。
確かに横長でも縦長でもないけれど、正方形だとしてもデバイスの方向ってやつがあるはずでしょぅ
そう考えると、SQUAREっていう報告は来ないはず…
実機で試してみたいなぁー
あーもやもやする
AndroidManifest.xmlでactivityのscreenOrientation属性で指定する方法が一般的だと思う。
<activity ... android:screenOrientation="landscape" ...>
この指定は実行時に変更することができる。
縦長固定に変える
Activity#setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
横長固定に変える
Activity#setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
システムに決めてもらう
Activity#setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
「システムに決めてもらう」設定にしておくと、重力センサーなどに従って、自動的に自然な方向に回転したりする。
普通の時は自由に回転させておくけれど、ボタンを押したときには「その時の方向で固定」したいこともある。
public void lockScreenOrientation() { switch (getResources().getConfiguration().orientation) { case Configuration.ORIENTATION_LANDSCAPE: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); break; case Configuration.ORIENTATION_PORTRAIT: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); break; case Configuration.ORIENTATION_SQUARE: // ここではどうしたらいい? break; } }
世の中には正方形のデバイスもあるらしい。
確かに横長でも縦長でもないけれど、正方形だとしてもデバイスの方向ってやつがあるはずでしょぅ
そう考えると、SQUAREっていう報告は来ないはず…
実機で試してみたいなぁー
あーもやもやする
2010年11月16日火曜日
<application>の直下に<meta-data>を書いてもいいのかもしれない
AndroidManifest.xmlの<meta-data>の説明では、<meta-data>の親になるのは、
の4つしか書いてない。
だけど、ApplicationInfoにはmetaDataフィールドがあるし、
実機で検証したところ、期待通りに機能している。
「動く」けど、ドキュメントに書かれていない、この便利な機能を使ってよいのだろうか?
答えがないかと探していたら、見つけたっぽい。
AdMobのガイド。
<application>の子要素で<meta-data>使って"ADMOB_PUBLISHER_ID"をセットしている。
AdMobがこの仕組みを使ってるってことは、だれでも使っていいってことだろう。
いつかドキュメントが更新されるに違いない。
もしも問題になったとしても、解決策がすぐに提案されるだろう。
- <activity>
- <activity-alias>
- <service>
- <receiver>
の4つしか書いてない。
だけど、ApplicationInfoにはmetaDataフィールドがあるし、
実機で検証したところ、期待通りに機能している。
public static Object getAppMetaData(Context context, String key) { try { final Bundle metaData = context .getPackageManager() .getApplicationInfo( context.getPackageName(), PackageManager.GET_META_DATA) .metaData; if (null != metaData) { return metaData.get(key); } } catch (NameNotFoundException e) { } return null; }
「動く」けど、ドキュメントに書かれていない、この便利な機能を使ってよいのだろうか?
答えがないかと探していたら、見つけたっぽい。
AdMobのガイド。
<application>の子要素で<meta-data>使って"ADMOB_PUBLISHER_ID"をセットしている。
AdMobがこの仕組みを使ってるってことは、だれでも使っていいってことだろう。
いつかドキュメントが更新されるに違いない。
もしも問題になったとしても、解決策がすぐに提案されるだろう。
2010年11月8日月曜日
Androidでアプリ実行中にフルスクリーンにしたりしなかったり
ボタンを押したらフルスクリーンにする。
もうひとつのボタンをおしたら元に戻す。
もうひとつのボタンをおしたら元に戻す。
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.btnFullScreen).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getWindow().addFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN); } }); findViewById(R.id.btnNotFullScreen).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getWindow().clearFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN); } }); }
2010年10月21日木曜日
Androidの標準ブラウザで開いたHTMLから自作アプリを起動してみた
通常のアプリのように見えて、
かつ、
ブラウザーからもアプリを起動できるようにするためには、
アクティビティにintent-filterを追加すればよい。
かつ、
ブラウザーからもアプリを起動できるようにするためには、
アクティビティにintent-filterを追加すればよい。
AndroidManifest.xml
<activity android:name=".MyActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="hello" android:host="world"/> </intent-filter> </activity>
HTMLには
<a href="hello://world/">起動</a>
こんなリンクを用意する。
ブラウザーから起動された場合、getIntent().getData()でUriを取得することができる。
アクティビティが普通に起動されたときには、getData()はnullを返す。
参考
2010年8月31日火曜日
画像でボタンを作る方法
これまでスタイルで指定する方法を使っていたけれど、よりよい方法を見つけた。
スタイルで指定するとEclipseのLayoutエディタではプレビューできなかった。
でも、以下の方法ならばプレビューもちゃんとできる。
スタイルで指定するとEclipseのLayoutエディタではプレビューできなかった。
でも、以下の方法ならばプレビューもちゃんとできる。
まず、画像を3つ用意する。
- 通常時の画像。
- トラックパッドなどで選択されている時の画像。
- タッチされている時の画像。
例えばこんな感じ。
res/drawable/normal.png
res/drawable/focused.png
res/drawable/pressed.png
次に、ボタンの状態に応じて表示するものが変わるdrawableをxmlで作成する。
drawable/button.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/focused" android:state_focused="true"/> <item android:drawable="@drawable/pressed" android:state_pressed="true"/> <item android:drawable="@drawable/normal"/> </selector>
そしてボタンに適用する。
layoutファイルにて
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button"/>
参考情報: Android画像付きボタン
自作Viewのカスタム属性
MyViewという名前で自作Viewを作り、カスタム属性helloを作る方法のメモ。
まず res/values/attrs.xml を作って属性を定義する。
res/values/attrs.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="MyView"> <attr name="hello" format="string"/> </declare-styleable> </resources>
これで、R.styleable.MyViewとR.styleable.MyView_helloというフィールドが自動生成される。
次に、MyViewのコンストラクタでカスタム属性を読むコードを書く。
MyView.java
public MyView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); TypedArray a = context.obtainStyledAttributes( attrs, R.styleable.MyView, defStyle, 0); this.hello = a.getString(R.MyView_hello); a.recycle(); }
MyViewを使う時は、属性のために名前空間を宣言する。
layout/main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:takumak="http://schemas.android.com/apk/res/[Rクラスのパッケージ名]" android:layout_width="fill_parent" android:layout_height="fill_parent"> <com.blogspot.takumakei.lib.MyView android:layout_width="fill_parent" android:layout_height="fill_parent" takumak:hello="hello world"/> </LinearLayout>
参考にした情報
2010年8月30日月曜日
2010年8月18日水曜日
SIMとICCIDとIMSIとIMEI
ICCIDとはIC Card IDのこと。SIMカード固有の番号。
SIMカードとはSubscriber Identity Module Cardのこと。
加入者識別番号モジュールカード。
android.telephony.TelephonyManager#getSimSerialNumberでICCIDを取得可能。
IMSIとはInternational Mobile Subscriber Identityのこと。
国際移動体加入者識別番号。
キャリアがSIMに割り当てた識別番号。
携帯電話の通信ではIMSIが電話番号の役割を担う。
IMSIは再利用される可能性がある。
IMSIは滅多に送信されることがないらしい。
SIMカードとはSubscriber Identity Module Cardのこと。
加入者識別番号モジュールカード。
android.telephony.TelephonyManager#getSimSerialNumberでICCIDを取得可能。
IMSIとはInternational Mobile Subscriber Identityのこと。
国際移動体加入者識別番号。
キャリアがSIMに割り当てた識別番号。
携帯電話の通信ではIMSIが電話番号の役割を担う。
IMSIは再利用される可能性がある。
IMSIは滅多に送信されることがないらしい。
IMEIはInternational Mobile Equipment Identifierのこと。
国際移動体装置識別番号。
端末に割り当てられた番号。
*#06#と入力すると携帯電話の画面に表示できる。
TelephonyManagerのインスタンスは、
READ_PHONE_STATEパーミッションが必要。
もとねた:ICCIDの取得方法について
2010年8月17日火曜日
みたことあるAndroid端末のUser Agentたち
HT-03A
Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; Docomo HT-03A Build/DRD08) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
X06HT Desire
Mozilla/5.0 (Linux; U; Android 2.1-update1; ja-jp; HTC Desire Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
SO-01B XPERIA
Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; SonyEricssonSO-01B Build/R1EA018) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
IS01
Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; IS01 Build/S7070) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
2010年4月17日土曜日
Xperia X10とWindows 7 64bit の USBドライバ(SDKのドライバをロードする方法)
android_winusb.infを修正しておくだけ。
android_winusb.inf.patch
--- android_winusb.inf.orig 2010-04-17 22:36:28.789163200 +0900 +++ android_winusb.inf 2010-04-17 23:24:14.522073700 +0900 @@ -26,6 +26,9 @@ %ProviderName% = Google, NTx86, NTamd64 [Google.NTx86] +; Xperia X10 +%SingleAdbInterface% = USB_Install, USB\VID_0FCE&PID_D12E +%CompositeAdbInterface% = USB_Install, USB\VID_0FCE&PID_D12E&MI_01 ; HTC Dream %SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C01 %CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&MI_01 @@ -44,6 +47,9 @@ %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E12&MI_01 [Google.NTamd64] +; Xperia X10 +%SingleAdbInterface% = USB_Install, USB\VID_0FCE&PID_D12E +%CompositeAdbInterface% = USB_Install, USB\VID_0FCE&PID_D12E&MI_01 ; HTC Dream %SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C01 %CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&MI_01
2010年4月1日木曜日
Xperia X10とWindows 7 64bit の USBドライバ
Xperia X10をWindows 7 64bitに認識してもらえなくて困ってた。
いろいろぐぐってようやく見つけた。
正解はPdaNet for Androidのインストールを途中までやること。
手順はたぶん次のようだったと思う。
ちなみに、
PdaNetを見つける前にフォーラムで見つけたX10.zipというのではダメだった。
32bit用なのだろうか?
いろいろぐぐってようやく見つけた。
正解はPdaNet for Androidのインストールを途中までやること。
手順はたぶん次のようだったと思う。
- Xperia X10はPCから接続をはずしておく。
- PdaNetの64bit用のインストーラを起動して、「Androidをデバッグモードにしてつなげ」というダイアログが出るところまで進める。
- Xperia X10をデバッグモードにして、PCとUSBケーブルと接続する
- ダイアログのOKで先に進む。(ここでドライバのインストールに成功する)
- モデム用のデバイスドライバをインストールするかどうか聞いてくるので、 No と言う。
- するとインストーラはインストールに失敗したとみなしてインストールをキャンセルしてロールバックしてくれる。
ちなみに、
PdaNetを見つける前にフォーラムで見つけたX10.zipというのではダメだった。
32bit用なのだろうか?
2009年7月24日金曜日
Androidのタイトルバーにアイコンを表示してみた
import android.view.Window;
Window w = getWindow();
w.requestFeature(Window.FEATURE_LEFT_ICON);
setContentView(R.layout.search);
w.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.icon);
とっても簡単。
Window.FEATURE_???を調べたらいろいろできることが増えるのかも。
登録:
投稿 (Atom)