スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

VB:Notesのデータベースを読み込むAPI

Notesからデータを直接吸い出したかったのですが、やっとそのやり方がわかりました。
なのでメモ。

特に、「いついつ以降に新規作成・更新になったデータ」の吸出しができずに悩んでました。
Searchメソッドを使えば解決しました。





Dim wkNotesSsn As Object
Dim wkNotesDB As Object
Dim wkNotesDocs As Object, NDoc As Object

dim svr as string
dim nm as string
svr = "サーバー名"
nm = "ファイル名"

Set wkNotesSsn = CreateObject("Notes.NotesSession")
Set wkNotesDB = wkNotesSsn.GetDatabase(svr, nm)

'-- 全部のデータを取ってきたいときは、コレ --
Set wkNotesDocs = wkNotesDB.AllDocuments

'-- 期間を区切って取ってきたい場合は、コレ --
Set wkNotesDocs = wkNotesDB.Search("@all", wkNotesSsn.CreateDateTime("12/31/2013"), 0)




Dim データ As String, sval As String
Dim n As Long
Dim i As Integer
Dim bar As String

bar = Application.StatusBar


'-- データ取得 -------------
n = 0
ReDim results(1000)
Set NDoc = wkNotesDocs.GetFirstDocument

Do Until NDoc Is Nothing

If NDoc.NoteID <> "" Then

id = NDoc.NoteID
dt = NDoc.LastModified
sval = NDoc.GetItemValue(Split(columns(i), ",")(1))(0)

If n Mod 1000 = 0 Then
ReDim Preserve results(UBound(results) + 1000)
End If

End If

Set NDoc = wkNotesDocs.GetNextDocument(NDoc)
Loop

'配列の微調整
For i = UBound(results) To 0 Step -1
If results(i) <> "" Then
ReDim Preserve results(i)
Exit For
End If
Next i

スポンサーサイト

Tipsやチュートリアルの作り方

アプリの説明を、アプリ自体にチュートリアル(Tips)として入れたい場合のやり方です。
オーバーレイででレイヤー的に画像を差し込んで、ボタンの上に吹き出しを描画します。

画像の準備(吹き出し・グレーアウト用)
吹き出しに使う画像と、実際の画面をグレーで覆うための画像です。
グレーで覆うといっても、真っ黒な四角の図形を透過させているだけです。

以下の画像をRes\Drawableに保存してください。

グレーアウト用(以下の小さい黒いぽちっとした点の画像です)
blk.png

吹き出し用
注意!FC2の仕様で、ファイル名にピリオドが打てないため、以下の吹き出しをダウンロード後、ファイル名を次のように変えてください。
small_fukidashi_ul_9.png -> small_fukidashi_ul.9.png
small_fukidashi_dl_9.png -> small_fukidashi_dl.9.png

small_fukidashi_ul_9.png
small_fukidashi_dl_9.png

レイアウトの変更
複数の画像を重ねて表示するため、FrameLayoutに変更します。
注意1:実際の画面はLinearLayoutなどで囲まれているかと思いますが、このLinearLayoutは残します。残さないと、すべてが左端にギューッと集まってしまいます。

FrameLayout
  → その中にLinearLayout → その中に画面
  → グレーアウト用画像
  → 吹き出し
といった構造です。

注意2:グレーの幕を画面一杯に出すため、FrameLayoutは「fill_parent」を指定しています。
また、小さい画像を画面いっぱいに広げるため、スケールタイプをfixXYにしています。
android:scaleType="fitXY"
また、画像を透過させるため、アルファ値を0.5にしています。
android:alpha="0.5"

注意3:吹き出しは、TextViewです。



具体的には、以下のような感じ。
112aaa.png




<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>

<!-- 実際の画面・・・LinearLayoutで囲む -->
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>

<Button
android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="ボタン"
/>
</LinearLayout>

<!-- グレーアウト用画像 -->
<ImageView
android:id="@+id/blk"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:alpha="0.5"
android:src="@drawable/blk"
/>

<!-- 吹き出し:テキストビューです -->
<TextView
android:id="@+id/tips01"
android:layout_marginLeft="50dp"
android:layout_marginTop="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ココをタップしてね"
android:textAppearance="?android:attr/textAppearanceSmall"
android:background="@drawable/small_fukidashi_ul"
android:textColor="#ff0000ff"
/>
</FrameLayout>


MainActivityの修正
吹き出しがタップされたら画像を消すためのコードです。
OnCreateを次のように変えます。




@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Tisp制御:01
TextView tv01 = (TextView) findViewById(R.id.tips01);
tv01.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
((TextView) findViewById(R.id.tips01)).setVisibility(View.GONE);
((ImageView) findViewById(R.id.blk)).setVisibility(View.GONE);
}
});

((ImageView) findViewById(R.id.blk)).setVisibility(View.VISIBLE);
((TextView) findViewById(R.id.tips01)).setVisibility(View.VISIBLE);
}


以上です。

NozVoice

ic_launcher.png

https://play.google.com/store/apps/details?id=com.fxscore.nozvoice

【NozVoice の特徴】
「しゃべってGoogleカレンダー登録」「しゃべってタスク登録」というアプリです。タスク登録先はNozbeというクラウドで、NozbeとGoogleカレンダーを同期させると、Googleカレンダーに声で登録することができます。

このアプリ「NozVoice」は、Nozbeというタスク管理クラウドを通じてGoogleカレンダーにスケジュール登録するアプリです。

なので、まずはNozbeに登録する必要があります。

【Nozbeの登録】
設定方法の詳細はhttp://fxscore.blog59.fc2.com/blog-entry-110.html をご覧ください。

NozVoiceは、Nozbeの「メール送信での登録機能」を使っています。
なので、単にNozbeに登録情報をメールしているだけです。

【設定の変更】
デフォルトでは、ニックネーム=nozbevoice・PIN=0007が設定されています。これを、自分のアカウント用に変更してください。
メニューボタン → Preferenceで設定できます。

ニックネーム・PINはhttps://webapp.nozbe.com/account/new#Settingsで確認できます。

aaa.png


【NozVoiceを使ってみよう】
まずは、しゃべってみましょう。
起動後、マイク画面が出てきたら、「テスト登録」としゃべってみてください。
Task欄にしゃべった言葉(テスト登録)が入っていると思います。
次に、Date/Time(input by Voice)ボタンを押して、マイク画面が出てきたら「あさっての3時」としゃべってください。
“あさって”が7/23の場合、ボタン部分に「2013/07/23(火) 3:00」と表示されて、画面下のリストビューに候補の日付が出てきます。
ここで、「Date:2013/07/23(火) 15:00 - 20130723 1500」をタップすると、日付ボタンが“15:00”に変わります。

これで「Add to Nozbe」を押せば、Nozbeに登録されます。

【登録内容の確認】
Googleカレンダーへ行ってください。
「テスト登録」が“あさって”の15:00に登録されていれば、成功です。


【その他TIPS】
タスク登録で「あさっての15時にミーティング」と、タスク名と日時をいっぺんに登録することもできます。
また、日付設定では、
・●月×日
・今日/明日/あさって
・来週●曜日
・来月/●月
など、いろいろなキーワードが使えます。試してみてください。

Nozbeの設定

NozbeをGoogleカレンダーと同期させるための設定方法です。
また、メールでNozbeにタスクを登録するための設定(ニックネーム&PINの設定)も行います。



Nozbeへのアカウント登録
まずはNozbeに登録しましょう。
http://www.nozbe.com/signup/

Nozbeにログイン(旧ページに変更)
Nozbeにログインして各種設定を行うのですが、新しいWebページだと設定できません
なので、旧Webページに変更しましょう。

旧ページに行くには、左下の設定ボタンを押した後、「Click here to go back to Nozbe Classic」をクリックします。
もしくは、https://webapp.nozbe.com/account/new#Settings で旧Webページの設定画面にいけます。


Nozbeの設定画面で、「タイムゾーン」「国」を変更
「アカウントの設定」画面の「個人情報」をクリックすると、画面がペロンと出てきます。
そこで、「国」と「時間帯」をJapan(日本)に変更しましょう。
※ 日本の「時間帯」は、GMT+9 です。

settei_country.png


Nozbeで、「ニックネーム」と「PIN」を設定
同じく「アカウントの設定」画面の、「ニックネームとPIN」で、好きなニックネームとPINを設定してください。

これで、「[ニックネーム].[PIN]@nozbe.us」というメールアドレスに送ればタスクを登録できるようになりました。
例えば、ニックネームを“nozbevoice”、PINを“0007”とすれば、「nozbevoice.0007@nozbe.us」がタスク登録するためのメールアドレスです。
このニックネームとPINは重要ですので、覚えておいてください。

Googleカレンダーと同期
画面右にある「カレンダー」をクリックするか、https://webapp.nozbe.com/account/new#calendar に行ってください。
そのページの上部にある「情報」を押し、「Googleカレンダー」を押すと、GoogleCalendarと同期できます。

settei_googlecalendardouki.png


これで「メール送信」→「Nozbeタスク登録」→「Googleカレンダー登録」ができるようになりました。

メール送信の際のコマンドは、以下を参考。
http://fxscore.blog59.fc2.com/blog-entry-95.html

AdStirの組み込み手順

AdStirをAndroid携帯アプリに組み込む時の手順。
よくやってしまうミスは、マニフェストにActivityを登録しないことと、JARファイルの置き場所。
ちなみに、AdStir経由でAdMobを使う場合の手順です。AdMobを使わない場合は、マニフェストにActivity登録は必要ありません。




1.JARファイルにビルドパスを通す。
 注意!! JARファイルは、組み込みたいプロジェクトの下にある「libs」フォルダに置くこと。そうしないと実行時にエラーになる。(コンパイルは通るのに・・)


2.マニフェストに、パーミッションを追加

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


3.マニフェストに、アクティビティ登録(忘れがち)

<activity
android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
/>


4.レイアウトにビューを追加

<com.ad_stir.AdstirView
media="MEDIA-********"
spot="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>


5.MainActivityのOnDestroyをオーバーライド

@Override
public void onDestroy(){
AdstirTerminate.init(this);
super.onDestroy();
}


javamailでメールを送る時のエラー

昔送れていたJAVAMAILが、送れなくなった!
ちなみに、出てくるエラーは「android.os.NetworkOnMainThreadException」。

理由は、送れていた時はAPI8のエミュレータを使っていたが、API15とかのエミュレータを使ったことで送れなくなったらしい。
というのも、android3以降、メインスレッドでJAVAMAILが送れなくなったよう。

参考記事 → ココ

なので、AsyncTaskを使ってそれを回避。
※ もっとシンプルな回避方法は、ココに丁寧に記載されていました。




public void MySendMail(final String mUser, final String pw, final String mTo, final String title, final String sBody){


if( ! mUser.equals("") ){

new AsyncTask<Void, Void, Void>() {
@Override public Void doInBackground(Void... arg) {
try {
Properties props = new Properties();

props.put("mail.smtp.host", "smtp.gmail.com");// SMTPサーバ名
props.put("mail.smtp.port", "587"); // SMTPサーバポート
props.put("mail.smtp.auth", "true");// smtp auth
props.put("mail.smtp.starttls.enable", "true");// STTLS

Session sess = Session.getInstance(props);

MimeMessage mimeMsg = new MimeMessage(sess);

mimeMsg.setFrom(new InternetAddress(mUser));//Fromアドレス
mimeMsg.setRecipient(Message.RecipientType.TO, new InternetAddress(mUser));//送信先アドレス
mimeMsg.setContent("body", "text/plain; utf-8");
mimeMsg.setHeader("Content-Transfer-Encoding", "7bit");
mimeMsg.setSubject(title);//件名
mimeMsg.setText(sBody, "utf-8");//本文

Transport transport = sess.getTransport("smtp");
transport.connect(mUser, pw);
transport.sendMessage(mimeMsg, mimeMsg.getAllRecipients());// メール送信
transport.close();

} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute();

}
}

AdStirのアプリごとの登録方法

AdStirに最近登録したのですが、1アプリ1アカウントと思ってしまってました。
でもそんなはずはないと、アプリごとに設定する方法を探していたところ、どうやら以下のようにやるみたい。
現在ヘルプデスクにこれであっているかを伺っている最中ですが、とりあえずメモを残しておきます。

1.AdMobアカウントの登録
 「アカウント管理」画面にて、それぞれのアプリに対応したアカウントを新規作成。

2.メディアの作成
 「メディア&アドネットワーク設定」で、それぞれのアプリに対応した“メディア”を作成。

3.広告配信比率の設定
 「広告配信比率」で、それぞれのアプリごとに配信比率を登録。
 最初に出てきている画面は、アプリA(最初に登録したアプリ)で、まずアプリAの「AdMob」行にある「アカウント設定」をクリックし、上の「1」で作成したアプリA用のアカウントを選択。
 次に、画面の上のほうにある「広告配信比率を設定する広告枠を選択してください」から、アプリBのデフォルト枠を選択し、アプリA同様に「AdMob」行のアカウント設定を行う。

AdStirを組み込んだらエラーに

Android携帯向けアプリに広告を載せようと、AdStirを組み込んだらエラーになってしまいました。
いろいろとググってみたものの、AdStir関連の日本語記事がぜんぜん見つからず、四苦八苦したので、メモで残しています。
ちなみに、AdMobも同様でした。

症状
・マニュアルどおり、以下のレイアウトを組み込んだら、コンパイルは問題なくできるのに、実行時にエラーが出る。

<com.ad_stir.AdstirView
media="*************"
spot="*"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>


原因
このアプリは、もともと古いバージョンのEclipseで作っていました。
Eclipseのバージョンをあげて、その新しいEclipseにインポートして作り続けていたのですが、どうやらそれが問題そうでした。

参考記事→ココ


解決策
少々面倒くさいですが、一旦Eclipseからプロジェクトを削除して、そこに今まで作っていたソースコードなどをコピーしてアプリを作り直すと、無事広告が出るようになりました。


P.S.
 AdStirって、まだまだマイナーなんですかね?


ハッピーメールバナー

AndEngineをライブラリに入れると、ビルド(製品版)できない!

AndEngineを使ったゲームを作って、いざ署名&パッケージングしようとしたら、ビルド時にエラーに!
エラーメッセージ:Conversion to Dalvik format failed with error 1
四苦八苦して、やっとたどり着いた解決策 → ココ を参考にしました。



解決策の手順
  1. AndEngineをライブラリに設定している場合は、外す
  2. プロジェクトのフォルダ:libsに、andengine.jar(AndEngine\binの下にあります)をコピー
  3. ビルドパスにandengine.jarを登録する(プロジェクトを右クリック→Properties→Java Build Pathで、「Add External JARs」をクリックし、andengine.jarを選択)

これで、ビルドが通るはずです。

馬蹄型コインケース








馬蹄型コインケース(小銭入れ)
































革パーツ
革(表):約3デシ
革(裏):約3デシ
その他パーツ 特になし
作成時間 10時間










【作成手順】
革の裁断


Sleeve

Sleeve(コーヒーカップのホルダー)


革パーツ 革:約2デシ
その他パーツ 紐を通す穴の金具
作成時間 2時間


【仕込み】
革の裁断
  1. 革を裁断し、手元部分以外をコバ磨き(手元部分は貼り合わせてからコバ磨き)

【作成】
  1. 手元部分を張り合わせる
  2. 手元をコバ磨き
  3. 手元を縫い合わせる
  4. 金具の穴をあけ、金具を取り付ける
  5. 手元と反対側部分を縫い合わせて、完成!




上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。