oms - 4
9974 ワード
Hello, OPhone!
次に、OPhoneのLocal Search APIを使用した簡単なOPhoneアプリケーションを作成し、すべてのコールレコードを出力する例を示します.
OPhoneプロジェクトの作成
最初のプロジェクトの作成を開始する前に、WindowsまたはLinuxにEclipseをインストールできるEclipse環境を構成する必要があります.Eclipseがない場合は、Eclipseの公式サイトにEclipse IDEをダウンロードすることができます.Eclipseがあれば、EclipseにADTがインストールされていることも確認します.ADTのインストール手順は、Eclipseプラグインのインストールを参照してください.
OPhoneプロジェクトの作成Eclipseを開き、「File>New」を選択し、「Android Project」オプションを選択します.
OPhon eライブラリを追加Androidプロジェクトの作成をサポートした後、Eclipse IDEインタフェース左側の「Package Explorer」で先ほど作成したプロジェクトを選択し、右クリックするか「Project」メニューを開いて「Properties」を選択します.ポップアップ・プロパティ設定ウィンドウで「Java Build Path」を選択すると、次のウィンドウが表示されます.「Libraries」オプション・ページを選択します.「Add Library...」をクリックします.ボタンで「User Library」を選択し、「Next>」の下の図のようなダイアログボックスをクリックしてOPhoneを選択します.OPhoneオプションがない場合は「User Libraries...」をクリックします.OPhoneライブラリを構成します.詳細は、「Eclipse IDEにOPhoneライブラリを追加する」を参照してください.「OPhone」を選択し、「Finish」をクリックします.[プロジェクトのプロパティ]ダイアログボックスには、次のように表示されます.
「OK」をクリックすると、OPhoneのプロジェクトが作成されます.プロジェクトの内部にはHelloOPhoneというjavaファイルがあります.ソースコードは以下の通りです.
view plain copy to clipboard print ?
public class HelloOPhone extends Activity {
@Override
super.onCreate(icicle);
}
}
public class HelloOPhone extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
}
}
コードの作成
次に、この自動生成されたソースファイルを修正し、OPhone APIを呼び出します.サンプルコードが実現する機能は以下の通りです.
画面にスクロール表示可能なテキスト領域を作成する.
XMLファイルの編集、UIの作成
mainを開く.xml、このファイルのパスはres/layout/mainです.xml.Eclipseでは「Android Layout Editor」でXMLファイルを編集できますが、修正したXMLの内容は以下の通りです.view plain copy to clipboard print ?
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</ScrollView>
はTextViewコントロールを作成し、コントロールのidが「textview」であることを指定します.TextViewのプロパティ値を設定し、「layout_height」の値は「wrap_content」です. プロジェクト内のJavaファイルを編集し、LocalSearchのAPIを呼び出す
次にjavaファイルを編集し、ophone/helloOPhoneを開きます.JAva、コードを追加し、LocalSearch APIを呼び出し、修正したコードは以下の通りです.view plain copy to clipboard print ?
package oms.hello;
import ...
import android.database.Cursor;
import android.os.Bundle;
public class HelloOPhone extends Activity {
@Override
String searchSelection = "type:" + SearchProvider.TYPE_CALL;
}
public String localSearch(String searchSelection) {
Uri uri = Uri.parse(SearchProvider.CONTENT_URI);
null, null);
StringBuffer result = new StringBuffer();
// print result out
// Use cursor.respond function to get the data.
extras = cursor.respond(extras);
String id = extras.getString(SearchProvider.FIELD_ID);
String title = extras.getString(SearchProvider.FIELD_TITLE);
int duration = Integer.parseInt(extras.getString(SearchProvider.FIELD_CALL_DURATION));
.append("/n[").append(calltype).append("]")
.append("/t").append(new Date(time).toString())
.append("/n");
return result.toString();
}
package oms.hello;
import ...
import oms.servo.search.SearchProvider;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
public class HelloOPhone extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
...
// step 2: call OPhone API(LocalSearch)
String searchSelection = "type:" + SearchProvider.TYPE_CALL;
String searchResult = localSearch(searchSelection);
}
public String localSearch(String searchSelection) {
// search for SMS
Uri uri = Uri.parse(SearchProvider.CONTENT_URI);
Cursor cursor = getContentResolver().query(uri, null, searchSelection,
null, null);
StringBuffer result = new StringBuffer();
result.append("#id #calltype #title #time(#duration)/n");
// print result out
while (cursor.moveToNext()) {
// Use cursor.respond function to get the data.
Bundle extras = new Bundle();
extras = cursor.respond(extras);
// Extract the data from search result
String id = extras.getString(SearchProvider.FIELD_ID);
String calltype = extras.getString(SearchProvider.FIELD_CALL_TYPE);
String title = extras.getString(SearchProvider.FIELD_TITLE);
long time = Long.parseLong(extras.getString(SearchProvider.FIELD_TIME));
int duration = Integer.parseInt(extras.getString(SearchProvider.FIELD_CALL_DURATION));
result.append("/n").append(id)
.append("/n[").append(calltype).append("]")
.append("/t").append(title)
.append("/t").append(new Date(time).toString())
.append("(").append(duration).append(")")
.append("/n");
}
cursor.close();
return result.toString();
}
}
上記のコードでは、LocalSearch APIを呼び出して電話記録情報を照会し、照会結果を文字列searchResultに保存する. 出力結果
の次のコードは、クエリの結果をTextViewに表示します.view plain copy to clipboard print ?
package oms.hello;
import ...
/** Called when the activity is first created. */
public void onCreate(Bundle icicle) {
...
// step 3: output the result to the TextView
TextView tv = (TextView) findViewById(R.id.textview);
}
}
package oms.hello;
import ...
import android.widget.TextView;
public class HelloOPhone extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
...
// step 3: output the result to the TextView
if (searchResult != null) {
TextView tv = (TextView) findViewById(R.id.textview);
tv.setText(searchResult);
}
}
}
HelloOPhoneプログラムの実行
HelloOPhoneプロジェクトを選択し、右クリックし、ポップアップメニューから「Run as」を選択し、最後に「Android Application」をクリックしてプログラムを実行します.その後、HelloOPhoneアプリケーションはデバイス(またはシミュレータ)に配備され、自動的に実行され、の結果が得られます.
Copyright © China Mobile 2009