投稿

3月, 2013の投稿を表示しています

Xamarin で android の GPS NMEA メッセージを取得する

イメージ
Xamarin で android の GPS 位置情報を利用  に少しコードを追加して、GPS の NMEA メッセージを取得してみました。 これをテキストファイルに保存するだけで、地図ソフトなんかで読み込める GPS のログファイルになります。フォーマットを変換して google アースで軌跡を表示させたりもできます。 まず、 Xamarin で AndroidManifest.xml が見当たらないんだけど、どうするの?  なんかを参考に、GPS のパーミッションを設定します。(ACCESS_FINE_LOCATION を許可) アクティビティは、文字を表示するために TextView を 3個貼り付けています。NMEA メッセージを表示する TextView はスクロールさせたかったので、ScrollView の上に貼り付けました。 以下コード using System; using Android.App; using Android.Content; using Android.Runtime; using Android.Views; using Android.Widget; using Android.OS; using Android.Locations; // GPSを使うので追加 using System.Linq; // クエリの処理に必要 namespace gps_nmea0316 { [Activity (Label = "gps_nmea0316", MainLauncher = true)] public class Activity1 : Activity, ILocationListener, GpsStatus.INmeaListener { private LocationManager _locationManager; private TextView text1; private TextView text2; private TextView text3; private string _locationProvider; p...

Xamarin で AndroidManifest.xml が見当たらないんだけど、どうするの?

イメージ
Xamarin で AndroidManifest.xml が無いんだけど、パーミッションとかどうしたらいいんだろう? と思ったのですが、ソリューションの設定で AndroidManifest.xml ファイルを生成することが出来ました。 以下、その手順。 [プロジェクト] - [<ソリューション名>のオプション] を開きます。 [プロジェクトオプション] の [ビルド] - [Android Application] を選ぶと、右側に「このプロジェクトには Android Manifest が無いよ」と表示されるので [Add Android manifest] ボタンを押します。 ボタンを押すとこんな感じで AndroidManifest.xml を編集できます。 GPS を使うなら [ACCESS_FINE_LOCATION] を選んでチェックを入れるだけです。 Eclipse では、プロジェクトを作成する時に指定する OS (API) のバージョンも、ここで指定出来ます。 [OK] ボタンを押すと [Properties] フォルダの下に AndroidManifest.xml が作成されます。 AndroidManifest.xml の中身。 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="test0314.test0314"> <uses-sdk android:minSdkVersion="7" /> <application android:label="test0314"></application> <uses-permission android:name="a...

Xamarin で android の GPS 位置情報を利用

イメージ
android で GPSの位置データの取得するテストを Xamarin で やってみました。 文字を表示するために、TextView をふたつ貼りつけたアクティビティを作っておきます。 以下コード。 まずは GPS 使用の許可を求めるために [Properties] - [Assemblyinfo.cs] を編集。 JAVA で書く時には AndroidManifest.xml でやることですね。 using System.Reflection; using System.Runtime.CompilerServices; using Android.App; using Android; // Manifest のため追加 // Information about this assembly is defined by the following attributes. // Change them to the values specific to your project. [assembly: AssemblyTitle("test0314")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("uts")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". // The form "{Major}.{Minor}.*" will automatically update the build and revision, //...

Xamarin で android の加速度センサーを使う

イメージ
using System; using Android.App; using Android.Content; using Android.Runtime; using Android.Views; using Android.Widget; using Android.OS; using Android.Hardware; // センサーを使うので追加 namespace test0313_1 { [Activity (Label = "test0313_1", MainLauncher = true)] public class Activity1 : Activity, ISensorEventListener { // Activity と ISensorEventListener から継承 float x,y,z; private TextView text1; private SensorManager _sensorManager; protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); SetContentView (Resource.Layout.Main); text1 = FindViewById<TextView> (Resource.Id.textView1); _sensorManager = (SensorManager)GetSystemService (SensorService); } protected override void OnResume() { base.OnResume(); _sensorManager.RegisterListener(this, _sensorManager.GetDefaultSensor(SensorType.Acce...

Xamarin タイマーで表示を定期更新

イメージ
タイマーを使ってみる単純な例として、0.5秒ごとに数を加算して表示するプログラムを作ってみます。 xamarin で使えるタイマーのクラスには何種類かあるようなのですが、System.Timers.timer クラスが簡単に使えそうだったので、これを使うことにします。 まず、文字を表示するために  TextView を一つ貼りつけたアクティビティを作成しておきます。(やり方は  Xamarin でとても簡単な android アプリを作る  なんかを参照) コードはこんな感じ。 using System; using Android.App; using Android.Content; using Android.Runtime; using Android.Views; using Android.Widget; using Android.OS; using System.Timers; // タイマーを使うので追加 namespace timer2 { [Activity (Label = "timer2", MainLauncher = true)] public class Activity1 : Activity { int count = 1; private System.Timers.Timer timer1; private TextView text1; Handler mHandler = new Handler (); protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); // Set our view from the "main" layout resource SetContentView (Resource.Layout.Main); text1 = FindViewById<TextView> (Resource.Id.textView1);...

Xamarin でとても簡単な android アプリを作る

イメージ
前回の  Hello, Android  では、コードもアクティビティ(Windows アプリの ウィンドウのようなもの。アプリの画面。)も自動的に用意されていて、仕組みがよくわからなかったので、これらを自分で作ってみることにします。 とても簡単な例ということで、「ボタンを押したら文字を表示する」アプリを作ります。 Hello, Android  の時と同じように、新規ソリューションを作成します。 まず画面(アクティビティ)を編集してみましょう。 左側のツリーから、[Resources] - [layout] - [Main.axml] をダブルクリックしてデザイナを開きます。 下の [コンテンツ] [ソース] のタブでソースの表示もできます。 デザイナの画面サイズを変更できます。 縦画面/横画面の切り替えもできます。 Android OS のバージョン違いによる、見栄えの違いも確認できます。 さて、自動的に作成されているボタンを削除します。 マウスでボタンを選択して、[Delete] キーを押せば削除出来ます。 消えました。 新しいボタンを配置します。 右側の [Toolbox] から [Button] をドラッグして配置します。 文字を表示させるために、[TextView] も配置します。 TextView を空きスペース一杯に広げます。 TextView を選択して [▼] 印をクリックすると空きスペース一杯に広がります。 [▼] 印が出ない時はもう一回クリックすると出てきます。(クリックするたびに、幅/高さの設定とマージンの設定が切り替わる。) 広がりました。 Button と TextView の id を確認しておきます。 右側の [プロパティ] - [Widget] の一番上に表示されています。これまでの手順通り進めてきたら、button1 と textView1 になっていると思います。自分のわかりやすいように変更しても良いです。 画面の編集はこれで終了。 ここから、ソースを編集して行きます。 まず、自動的に作られる MainActivity.cs です。 "MainActivity.cs" namespa...

Xamarin 2.0 のインストール と Hello Android

イメージ
C# で Android OS や iOS や Mac OS のアプリケーションを作成できる Xamarin を使ってみたら、結構便利に使えました。(iOS と Mac OS のアプリ開発には、Mac OS が動いているコンピュータが必要。Android は Windows のみで可能) C# を少し触ったことがあるなら、Eclipse と Android SDK で Android OS のアプリを作るよりも、とっつきやすいなと思います。開発環境のインストールも Xamarin のほうが手間なく簡単です。 作成できるアプリケーションのサイズが制限される (32KB) かわりに、無料で使用出来る STARTER 版もあるので、気軽に試用してみることができます。 http://xamarin.com/faq 導入前のFAQ 概要とかエディションの違いとか http://docs.xamarin.com/ チュートリアルとかリファレンスとかサンプルとかがたくさん Xamarin Studio のインストール http://xamarin.com/  のトップページのわかりやすいところに、ダウンロードのリンクがあるのでインストーラーをダウンロードします。この時、名前とメールアドレスと使用目的のアンケートに答える必要があります。 ダウンロードしたインストーラを実行して画面の指示に従って数回クリックすると、JDK や Android SDK や Xamarin Studio とか必要な物を自動的にダウンロードしてインストールしてくれます。 インストールはこれだけで終了です。Eclipse を使う時のように、SDK を別々にインストールする必要が無いのでとても楽ちんです。 Hello, Android - 新規ソリューション(プロジェクト)の作成 動作テストとして新規のソリューション(Visual Studio でいうプロジェクト)を作成して、実行してみます。 Xamarine Studio を 起動したら、[ファイル]-[新規]-[ソリューション] を選択。 特別なことをしていなくても、メニューが日本語になっています。ありがたいですね。 「新しいソリューションダイアログ」で、[C#]-[A...

雪がたくさん積もった

イメージ
久しぶりにたくさん雪が積もった。一晩でこれだけ積もったのは今冬初かな? 週間天気予報を見ると、しばらく天気が良さそうなので最後の大雪かな?もう一回くらい大雪降るかな? 夕方からまた吹雪いている。天気予報では降雪量はあまり多くはならないみたいだけど、風がとても強い。