カテゴリー: OS

Android:デバイスIDの取得

取り敢えずnexus9で起動したアプリを見てあることに気づいた。というか思い出した。
確かLolipopだとdeviceIdをLogCatから見つけられないから、testDviceに追加する
方法がわからなかったんだった。まあどうせ1000回表示したとしても1円だし、年に一回、
最低振込金額に到達すれば良い方なので余り気にしなくてもいいような気がしないでも
ないが、余計な事で怒られるのも嫌なので改めてぐぐる。

android - How can I get device ID for Admobにあった、md5()メソッドを利用する方法で
nexus9のdeviceIdを取得出来たみたいだったので、早速addTestDevice()にidを追加する。
テスト用のバナーになった。ひゃっほいヽ( ・∀・)ノ ←歓喜する俺氏。

返す刀で、

String deviceId = md5(android_id).toUpperCase();
        mAdRequest.addTestDevice(deviceId);

みたいに前もって取得したidをaddTestDevice()するのではなく動的にdeviceIdを
取得してaddTestDevice()してみる。テスト用のバナーになった。
ひゅーひゅーだよ ひゅーひゅーかきーん(・∀・)
↑歓喜の余りよくわからないことを言い出す俺氏。年齢がかなりいってることが分かる。

sol25で試す。
 
 
 
 
 
あれ(´・ω・`)?
テスト用バナーが表示されず、実際の広告が…
キャッシュとかされてるのだろうかと何度か試したが、事態は変わらず。
nexus9で再び試すとテスト用バナーが(・∀・)
sol25で再び試すと実際の広告が(´・ω・`)

ここで4.0.xを載せているnovo7でも試す。
 
 
 
 
 
やっぱり実際の広告が…_| ̄|○

もしかしてサンプルコードのmd5算出部分が間違えてるんじゃないの(・∀・)?と
失礼な疑念を抱き、色々とぐぐる。いくつかのサイトを眺めてみたが
 
 
 
 
 
よくわからない(・∀・)


仕方がないので取り敢えず、算出されたdeviceIdをコピペしてみる。

84D38FF70AB5889E8FB12E44734AFE08

特におかしなところも見当たらない

LogCatで取得済みのidは

84D38FF7AB5889E8FB12E44734AFE8

なので同一か…
 
 
 
 
 
いや、ちょっと待て(;・´ω・`)

84D38FF70AB5889E8FB12E44734AFE08
84D38FF7AB5889E8FB12E44734AFE8

並べてみて気づいたが、ちょっと長いぞ。なんか0が2つ多い。
なんかの法則で0が2つついておかしくなるに違いない(`・ω・´)
↑実はこの時、大きい勘違いをしてる俺氏。0付加されているのが正しい値で、
LogCatから取得した値。無い方がmd5()メソッドで取得した値。
色々調べてるうちに2つの値を取り違えたみたい(ノ∀`)

名探偵俺氏、その確証を得る為にnovo7のdeviceIdを取得して比較。

2F5820181984FD634C5344329B170C1
2f58201819840fd634c5344329b170c1

あれ、0が一つ多いだけだね(´・ω・`)


まあ何にしてもおかしいのでぐぐり再開。
取り敢えずmd5変換に種類があるのだろうかとぐぐったがそんなことはない模様。
php等でmd5変換をしてくれるページなどで試してみたが、md5()で算出される値と同じ。

Android4系以前とlolipop以降の差なんだろうかとも考えたがlolipop搭載端末は一台しか
持っていないのでその説を検証するすべがない。うーんと思いながら値を眺めたり、
md5変換のコードが載っているページを読んでいて、ふとある部分に目が行く。

//MD5 ハッシュ関数<br />
    private static String hashByte2MD5(byte []hash) {<br />
        StringBuffer hexString = new StringBuffer();<br />
        for (int i = 0; i &lt; hash.length; i++) {<br />
            if ((0xff &amp; hash[i]) &lt; 0x10) {<br />
                hexString.append(&quot;0&quot; + Integer.toHexString((0xFF &amp; hash[i])));<br />
            } else {<br />
                hexString.append(Integer.toHexString(0xFF &amp; hash[i]));<br />
            }<br />
        }

<pre><code>    return hexString.toString();  
}  
</code></pre>

 if ((0xff &amp; hash[i]) &lt; 0x10) {<br />
                hexString.append(&quot;0&quot; + Integer.toHexString((0xFF &amp; hash[i])));<br />

の部分だ。

そう言えば余分な文字は”0”だヽ(`Д´)ノ!
つまり10以下の値の時は結果が二桁になるように”0”を付加してるんじゃないか( ・´ω・`)?
↑”0x”がついてるので正確には15以下です。しかもそう思うにしても10じゃなくて9以下です。

よっしゃと思いmessageDigestの値を見る。
-124, -45, -113, -9, 10, -75, -120, -98, -113, -79, 46, 68, 115, 74, -2, 8

ビンゴや(・∀・)


勢いに乗ってnovo7のmessageDigestの値を見る。
47, 88, 32, 24, 25, -124, 15, -42, 52, -59, 52, 67, 41, -79, 112, -63

あるぇー(・3・)? 10以下がないお(´・ω・`)

予想が外れたことに意気消沈するも、

0が付加されるのは”15”…
元の値は”f”……
判定式は”0x10”………
 
 
 
16進数やないかΣ(゚∀゚;)

とようやく自分の初歩的な勘違いに気づいた(ノ∀`)

何はともあれAndroidのdeviceIdはF以下の値には0付加しないという規則があるのか
という結論に到達したが、これが勘違いによる正反対の結論であることに気がつくのは数時間後のお話…(ヽ'ω`)


取り敢えず、カッコ悪いがmd5()メソッドを

String tempString = &quot;&quot;;
for (int i=0; i&lt;messageDigest.length; i++){
     tempString = Integer.toHexString(0xFF &amp; messageDigest[i]);

<pre><code> if(tempString.length()&amp;lt;2){
    hexString.append(&amp;quot;0&amp;quot; + tempString);
 }else{
    hexString.append(tempString);
 }
</code></pre>

}

みたいに改変。StringBufferを使ってるコードでStringを使う俺氏、鬼畜(・∀・)
とか思って参考にしたコードの上の回答を見てみたら

String h = Integer.toHexString(0xFF & messageDigest[i]);
  while (h.length() < 2)
    h = "0" + h;
hexString.append(h);

みたいな感じで0付加するコードが載ってた…_| ̄|○
まあでも最初の段階でこのコードを読んでもわけが分からなかっただろうし、
同じようなコーディングだからいいか(・∀・)

AdRequestの方もちょっと修正。直にaddTestDevice()の中でgetDeviceId()を
呼んでもいいけど今の所はLogに書き込みたいのでこれでいい。

String tempString = getDeviceId();
Log.d(TAG, tempString);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)       //エミュレータ
.addTestDevice(tempString)
.build();
adView.loadAd(adRequest);
private String getDeviceId(){
  String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);
  String deviceId = md5(android_id).toUpperCase(Locale.ENGLISH);

return deviceId;
}

取り敢えずはこれでsol25とnexus9でテスト用バナーを確認。

だがしかしnovo7では表示されず(´・ω・`)
よくよく考えみたら、novo7上でこのコードではテスト用バナーも実際の広告も
表示されているところを見たことがなかったので他の問題か。でもゲームベースでは
表示されたしなと思って文字列で静的指定をするとテスト用バナーが表示された…
わけがわからないのでもう一度デバッグで動的指定を試すとテスト用バナーが表示された…
本当にわけがわからない…(ヽ'ω`)

まあ一応動的指定は出来るようになったようだ…


で、まあいつものパターンで日本語でぐぐったら、日本語の答えがあったりする…(ヽ'ω`)
AdMob テストで使う、デバイスIDを取得

ここのページのリンクを辿ってJavaDocを読んだけど、ANDROID_IDって

A 64-bit number (as a hex string) that is randomly generated when the user first sets up the device and should remain constant for the lifetime of the user's device. The value may change if a factory reset is performed on the device.

Note: When a device has multiple users (available on certain devices running Android 4.2 or higher), each user appears as a completely separate device, so the ANDROID_ID value is unique to each user.

Constant Value: "android_id"
Settings.Secure | Android Developers

デバイスをファクトリーリセットすると変わる可能性があるんだねぇ。
加えて複数ユーザー機能を使ってる場合、ユーザー毎にANDROID_IDは一意的なんだねぇ。
ANDROID_IDから取得出来るStringの内容を見てないから断言出来ないけど、複数
ユーザー機能を使用しているデバイスからは複数のデバイスIDが取得出来るのかな?
それともANDROID_IDから取得出来るStringは同一なんだろうか。謎だ…(ヽ'ω`)

xmlファイルを使わずにFragmentを生成する方法(´・ω・`)?

xmlを使わずにFragmentを生成する方法をぐぐっていて、ヒットした
android - How to programmatically create the layout for a Fragment?
android - How do I add a Fragment to an Activity with a programmatically created content view
を参考にコードをでっち上げたが、果たしてこれで正しいのかどうかよくわからないw

そもそもなんでそんなことをしようしたのかというと、前のエントリを確認している時に
LongClickを拾えなくなった時に「前に試したコードはListFragmentだったから、それと
一緒にしないと再現できないのか…( ;・´ω・`)ゴクリッ?」という勘違いをして、かつ、
「サンプルコードはワンストップならぬワンコピペで完結すべき(`・ω・´)」という
謎の思想から、xmlファイルによるレイアウト指定を無しにしたいと思ったから(ノ∀`)

一応これで出来てるみたいだけれども、実際にプログラムの一部として使うには
もっと何かをしないといけないのかもしれないが、その辺はよくわからないw

取り敢えずワンコピペで試せるFragmentを使用するサンプルを作るのには
利用出来るので、これはこれでいいかな。

なぜかLongClickでToastが表示出来ないのは謎(´・ω・`)
Log.dには出力されているのに。まあタッチイベント関連はこのサンプルの
本質とは全く関係ないのだけれどw

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

	private GestureDetector mGestureDetector;
	private View.OnTouchListener mGestureListener;
	private static final int CONTENT_VIEW_ID = 10101010;
	private static final String[] CONFECTIONERY = {
		"Apple Pie", "Banana Bread", "Cupcake", "Donut", "Eclair", "Froyo",
		"Gingerbread", "Honeycomb", "Ice Cream Sandwich", "Jelly Bean",
		"KitKat", "Lollipop"
	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		LinearLayout layout=new LinearLayout(this);
		layout.setBackgroundColor(Color.WHITE);
		layout.setOrientation(LinearLayout.VERTICAL);
		layout.setId(CONTENT_VIEW_ID);

		setContentView(layout, new LayoutParams(
				LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

		Bundle bundle = new Bundle();
		bundle.putStringArray("confectionery", CONFECTIONERY);

		if (savedInstanceState == null) {
			Fragment newFragment = new MyFragment();
			FragmentTransaction ft = getFragmentManager().beginTransaction();
			ft.add(CONTENT_VIEW_ID, newFragment).commit();
		}
	}

	private void myOnItemClick(int position) {
		Log.d("myOnItemClick", "itemClick: " + position);
		Toast.makeText(MainActivity.this, "myOnItemClick itemClick" + position, Toast.LENGTH_LONG).show();
	}

	public class MyFragment extends Fragment {

		public MyFragment() {}

		View rootView;
		ListView listView;
		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
			LinearLayout layout=new LinearLayout(getActivity());
			Log.d("MyFragment", "onCreateView");
			layout.setOrientation(LinearLayout.VERTICAL);

			listView = new ListView(getActivity());

			listView.setLayoutParams(new LinearLayout.LayoutParams(
					LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
			listView.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,
					CONFECTIONERY));

			layout.addView(listView);

			rootView = layout;
			rootView.setBackgroundColor(Color.WHITE);
			return rootView;
		}

		@Override
		public void onActivityCreated(Bundle savedInstanceState) {
			super.onActivityCreated(savedInstanceState);

			mGestureDetector = new GestureDetector(getActivity(),new MyGestureDetector());
			mGestureListener = new View.OnTouchListener() {
				@Override
				public boolean onTouch(View v, MotionEvent event) {
					return mGestureDetector.onTouchEvent(event);
				}
			};

			listView.setOnTouchListener(mGestureListener);
			listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
				@Override
				public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
					Log.d("onItemLongClick", "LongClick");
					Toast.makeText(MainActivity.this, "onItemLongClick LongClick", Toast.LENGTH_LONG).show();
					return true;
				}
			});
		}

		class MyGestureDetector extends SimpleOnGestureListener {
			private static final int SWIPE_MIN_DISTANCE = 120;
			private static final int SWIPE_MAX_OFF_PATH = 250;
			private static final int SWIPE_THRESHOLD_VELOCITY = 200;

			@Override
			public boolean onSingleTapUp(MotionEvent e) {
				int pos = listView.pointToPosition((int)e.getX(), (int)e.getY());
				myOnItemClick(pos);
				return false;
			}

			@Override
			public boolean onFling(MotionEvent e1, MotionEvent e2,
					float velocityX, float velocityY) {
				if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) {
					return false;
				}

				boolean isDoCancel = false;

				if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
					Log.d("onFling", "FlingLeft");
					Toast.makeText(MainActivity.this, "onFling FlingLeft", Toast.LENGTH_LONG).show();

					isDoCancel = true;

				} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
					Log.d("onFling", "FlingRight");
					Toast.makeText(MainActivity.this, "onFling FlingRight", Toast.LENGTH_LONG).show();

					isDoCancel = true;
				}

				if(isDoCancel){
					MotionEvent cancelEvent = MotionEvent.obtain(e2);
					cancelEvent.setAction(MotionEvent.ACTION_UP);
					listView.onTouchEvent(cancelEvent);
					return true;
				}else{
					return false;
				}

			}
		}
	}
}

Neko Astume (Collect cats) tutorial

I'm not good at english :(
So,there may be the sentence that does not make sense :p

Since I have not gotten permission from Hit-Point Co.,Ltd,
this entry might be suddenly deleted if something happened.

* new feature and food/goods of version 1.2.0 is here.

* Help is here.

* This tutorial is for version 1.2.0, but tutorial for version 1.3.0 is basically same,except images.


tutorial-01
セーブデータが見つかりません
Save data can not be found.

新しくセーブデータを作成してもよろしいですか?
May I make save data newly?

tutorial-02

Left top : version number
Nayw : In Japan,cat's meow is "にゃー(Nya -)". ”Nya -” + ”Now” = "Nyaw"
right down cat : There are several pattern. Currently Shironeko-san only?

tutorial-03


ようこそ ねこあつめへ
Welcom to Neko-Atsume(Collect Cat)!

ねこたちを集めて
ねこ手帳を完成させましょう!
Let's collect the cats and complete the cat notebook!

tutorial-04


ねこたちは遊び道具のグッズとゴハンに惹きつけられてやってきます。
Cats will have doing been attracted to the plaything goods and food.
まずはグッズを買いましょう
First,let's buy a goods.

左上のメニューからかいものを選んでください
Please select the かいもの(kaimono / shopping) from menu at the left top.

tutorial-05


Tap the めにゅー(meyu- / menu) icon.

tutorial-06


Menu appeared,tap the かいもの(kaimono / shopping) icon.

tutorial-07


まずはお手頃なゴムボールを買ってみましょう
Let's first try to buy affordable prices rubber ball.
グッズは画面を左右にスライドさせるとページが変わります
Page which displays Goods will change if you slide the screen to the left or right.

tutorial-08


Tap the ゴムボール(赤).

tutorial-09


【ゴムボール(赤)】を購入しますか?
Do you want to buy the [rubber ball (red)]?

Tap the はい(hai / yes).

tutorial-10


【ゴムボール(赤)】を買いました!
You have just bought [rubber ball (red)] !

tutorial-11


買ったゴムボールをにわさきへ設置できます
You can install in the yard a rubber ball that you bought .

メニューからグッズを選んでみましょう
Let's choose the グッズ from the メニュー.

tutorial-11-2


買:This mark represent "Already purchased".

tutorial-12


Tap the めにゅー(meyu- / menu) icon.

tutorial-13


Tap the グッズ(guzzu / goods) icon.

tutorial-14


ゴムボールを選んでにわさきに設置してください
Please select a ゴムボール and install in the yard.

グッズは画面を左右にスライドさせるとページが変わります
Page which displays Goods will change if you slide the screen to the left or right.

tutorial-15


Tap the ゴムボール(赤).

tutorial-16

黄色の円の場所をタップしてゴムボールを設置してみてください
Please try to install a rubber ball by tapping the location of the yellow circle.

tutorial-17

Tap one of the yellow circles.

alreadyInstalled

* Incidentally,
設:This mark represent "Already installed" in the グッズ screen.

tutorial-18

つぎにゴハンを設置しましょう
Then, let's set up a food.
お徳用かりかりを選んで設置してください
Please choose Otokuyou-karikari, set it up.

グッズを設置してもゴハンを設置しないとねこたちはやってきません
Even if goods have been installed,cats will not come unless the food is prepared.

お徳用かりかりは何度設置してもなくなりません
Otokuyou-karikari is not lost even if set many times.

こまめにしっかり補充しましょう
Let's replenish frequently firmly.

tutorial-19

Tap the Otokuyou-karikari.

tutorial-20


Tap the yellow circle.

*Unlike goods, place where food can be placed is limited.

tutorial-21


おつかれさまでした!
Good job!
これで準備は万端です!
You have finished that preparation now.

ねこたちがやってくるまでには少し時間がかかります
It takes a little time until cats come

ホームキー等でアプリを一時停止か終了させて
しばらく時間を置いてからアプリを起動してみてください
Terminate or suspend the app by the home key etc,Please try to launch the app shortly afterward.

今回はチュートリアル中なのですぐに起動しても大丈夫です!
This time it is okay to start immediately because it is in the tutorial!

tutorial-22


Tap the back button.
Dialog appeared,tap the はい.
Home screen appeared,tap the ねこあつめ icon again.

tutorial-23

おめでとうございます!
Congratulations!

新しいねこがやってきました!
A new cat came over!

ねこのデータはねこ手帳で確認することができます
You can view the cat of data in ねこてちょう(Neko techou / cat note).

またさつえいで撮った写真を見ることもできるのでじゃんじゃんさつえいしてねこたちとの思い出を残しましょう!
Also, let's take more and more picture to leave the memories with cats, since you can view the cat photo that you took.

tutorial-24

チュートリアルはここまでです
Tutorial is up ,here.

300にぼしプレゼント!
10金にぼしプレゼント!
We present 300 niboshi and 10 goledn niboshi to you.

わからないことがあればヘルプで確認してみてください
Please check with help if there's anything you don't understand.

よいねこあつめを!
Have a nice ねこあつめ!


foodandlargegoodszone
* Food can be set up at the green circle.

* A large goods can be installed at the mat.
it needs double the size of normal goods.

replenishthefood

Otokuyou-karikari

Would you like to replenish [the name of the food]?

Except Otokuyou-karikari, you need to buy the food.
You can't replenish if you don't have the stock of the food.

changenew

* Except karikari series, dialog that contains different text will be displayed.
[食品名]を新しくしますか?
Would you like to exchange with a new [the name of the food]?

かつおぶし猫缶
(katsuobushi nekokan /Canned cat food with Katsuobushi Furikake)


How to take a picture of the cat

menu
Tap the メニュー(menyu- / menu) icon.
takeapicture

Tap the さつえい(satsuei / take a picture) icon.

* Also, if you do long tapping the cat of which you want to take a picture on the にわさき(niwasaki / yard) screen,you can go directly to さつえい(satsuei / take a picture) mode.

* Incidently, if you tap the cat,you can go that cat page in the neko note.

takeapicture-02

Satsuei mode appeared,tap the cat you want to take a picture of.

takeapicture-03

Camera mark appeared,tap the rectangle.
* You can move this rectangle.

takeapicture-04

アルバムに保存しますか?
Would you like to save to the album?

Tap the はい.

warning_photo

* Maximum storage number of album is 18 sheets.
If it exceeds it, you must select a photo to replace(= delete).

アルバムがいっぱいです
Album is full.
入れ替える写真を選んでください
Please select a photo to replace

takeapicture-05

アルバムに保存しました
Photo was saved in the album.

neko

Tap the とじる(tojiru / close) icon.
Tap the メニュー(menyu- / menu) icon.
Tap the ねこ(neko / cat note) icon.

takeapicture-06

Tap the cat that previously you took a picture of.
* Page which displays cats will change if you slide the screen to the left or right.
* New mark is displayed if you took a picture of the cat and don't set the picture at the page of that cat in the cat note.
* Regardless to whether taking a picture, the NEW mark is displayed after you see the cat in the yard once?

takeapicture-07

Tap the アルバム icon.

takeapicture-08

Tap the picture you want to set.

takeapicture-09

In the selected state (which is displayed frame of orange),tap it again.

takeapicture-10

Tap the とじる.

takeapicture-11

The picture is set.


How to delete a picture

takeapicture-12

タップで写真を選択後に写真を2秒ほどタッチし続けると削除することが出来ます。
You can delete it to continue touching the photo about two seconds after tapping the photo to delete.
takeapicture-13

この写真を消去しますか?
Do you want to delete this photo?

Tap the はい.

Neko Astume (Collect cats) have been updated to Ver.1.2.0.

I'm not good at english :(
So,there may be the sentence that does not make sense :p

Since I have not gotten permission from Hit-Point Co.,Ltd,
this entry might be suddenly deleted if something happened.

* Help is here.

* Tutorial is here.


ver1.2-01
もようがえが使えるようになりました!
Moyougae now can use!

メニューの左下に追加されたもようがえから変更できます
You can switch at Moyougae added at left bottom in Menu.

*一度購入したもようがえは何度でも変更できます*
*Once a pattern of Moyougae you have purchased can be modified again and again*
------------------------------------------------------------------------
もようがえ moyougae rearranging a room

Rearranging a room is called Moyougae in Japan.
In this game,I think that it's probably like changing the theme.
(I do not know exactly, since I don't try it.)

Moyougae don't appear unless expanded.
------------------------------------------------------------------------


ver1.2-02
もようがえ半額チケットをプレゼント!
We will offer a price-half ticket for "rearranging a room".
------------------------------------------------------------------------
半額 はんがく hangaku half-price
------------------------------------------------------------------------

ver1.2-03
いつもの (itsumono / default)
 
 
 
 
 
池と床の間 (ike to tokonoma / Pond and Tokonoma(Japanese traditional Style))
 
 
 
 
ウッドデッキ (uddodekki / wooddeck(American or European Style?))
ver1.2-04
モダンスタイル (もだんすたいる modan sutairu / modern style)

ver1.2-17

Foods

かつおぶし猫缶(katsuobushi nekokan /Canned cat food with Katsuobushi Furikake)

------------------------------------------------------------------------
Katsuobushi(鰹節 or かつおぶし) or okaka(おかか) is the Japanese name for dried, fermented, and smoked skipjack tuna (Katsuwonus pelamis).
------------------------------------------------------------------------


ver1.2-05

Goods

まり (mari / hand ball)
------------------------------------------------------------------------
"Temari" means "hand ball" in Japanese.
------------------------------------------------------------------------


ver1.2-05-0
ゴムボール (gomu bo-ru / rubberball)
(赤 あか aka / red)
(あお ao / blue)
(き ki / yellow)

ver1.2-06
さくら座布団 (sakura zabuton / Cherry blossoms Zabuton)
------------------------------------------------------------------------
Zabuton with Cover of pattern of cherry blossoms.
------------------------------------------------------------------------

ver1.2-07
桜餅クッション (sakuramochi kusshon / Sakura mochi Cushion)

------------------------------------------------------------------------
Cushion modeled after the shape of Sakura mochi.
------------------------------------------------------------------------

クッション(くっしょん kusshon / cushion)
(イエロー いえろー iero- / yellow)
(グリーン ぐりーん guri-n / green)

*I forgot to take a screenshot (ノ∀`)


ver1.2-08
ねこちぐら (neko chigura / One of the pet house made of straw.)
Google Images ねこちぐら

------------------------------------------------------------------------
ちぐら/つぐら(chigura/tsugura) is expressed with 稚座 in Japanese Kanji,
and means 籠(かご kago a basket) in Nagaoka_dialect.
------------------------------------------------------------------------


ver1.2-09
ハンモック(ゴザ) Hammock (goza)

------------------------------------------------------------------------
Goza is the Japanese name for the straw(rush) mat.
------------------------------------------------------------------------


ver1.2-10
モダンタワー (もだんぱわー modan tawa- / modern tower)

------------------------------------------------------------------------
Cat tower of modern style?
------------------------------------------------------------------------


ver1.2-11
鯉のぼりトンネル (こいのぼりとんねる koinobori tonnel / Koinobori tunnel)

------------------------------------------------------------------------
Tunnel modeled after the shape of Koinobori.
------------------------------------------------------------------------


ver1.2-12
ちくわトンネル (chikuwa tonnnel / chikuwa tunnel)

------------------------------------------------------------------------
Tunnel modeled after the shape of chikuwa.
------------------------------------------------------------------------

トンネルホルスタイン (tonnel horusutain / tunnel Holstein)
------------------------------------------------------------------------
Tunnel modeled after the markings of Holstein.
------------------------------------------------------------------------


ver1.2-13
けりぐるみ keri gurumi Stuffed toy for cats.

ねずみ (nezumi / rat)
------------------------------------------------------------------------
It is said that if give it cats,many cat is excited and kick it.
"keri/keru" means "kick", "nuigurumi" means "stuffed toy" in Japanese Language.
So it probably was named Kerigurumi.
Kerigurumi is seems brand name.There is a product that contain Matatabi(silvervine).

Google Images けりぐるみ

Google Videos けりぐるみ

------------------------------------------------------------------------

ver1.2-14
お魚 (osakana / fish)
うさぎ (usagi / rabbit)

ver1.2-15
梅壺(ume tsubo / a pot for Umeboshi)

------------------------------------------------------------------------
梅壺(ume tsubo) is a pot for Umeboshi.This have no relation to "Umetsubo" in Genji Monogatari.

Google Images 梅壺
------------------------------------------------------------------------


ver1.2-16
バケツ (ばけつ baketsu / Bucket)
(あお ao / blue)
(あか aka / red)
(き ki / yellow)

ver1.2-18
If tap him/her,following dialog will appear.
ver1.2-19
[猫の名前]さんが持ってきたチラシ(広告)を見ますか?
Do you want to see the flyer (advertising) that [Name of the Cat] was brought?

------------------------------------------------------------------------
If you tap "はい",Advertising will appear.
------------------------------------------------------------------------