<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>株式会社アプリ工房 &#187; android</title>
	<atom:link href="https://www.app-studio.jp/category/%e9%96%8b%e7%99%ba/android/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.app-studio.jp</link>
	<description>Webサービス開発/Mobile(iOS,Android)開発ならお任せください</description>
	<lastBuildDate>Mon, 05 Jan 2026 09:54:33 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>アプリのリンクを作成する</title>
		<link>https://www.app-studio.jp/2013/11/24/102/</link>
		<comments>https://www.app-studio.jp/2013/11/24/102/#comments</comments>
		<pubDate>Sat, 23 Nov 2013 16:17:27 +0000</pubDate>
		<dc:creator><![CDATA[katsuji.otsuka]]></dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[開発]]></category>

		<guid isPermaLink="false">http://www.app-studio.jp/?p=102</guid>
		<description><![CDATA[AppStoreやGoogle Playのリンクをサイトの載せる際に、それぞれリンクを作るのに使うサイト。 AppStore https://linkmaker.itunes.apple.com/jp/ Google P ...]]></description>
				<content:encoded><![CDATA[<p>AppStoreやGoogle Playのリンクをサイトの載せる際に、それぞれリンクを作るのに使うサイト。</p>
<h6>AppStore</h6>
<p><a href="https://linkmaker.itunes.apple.com/jp/">https://linkmaker.itunes.apple.com/jp/</a></p>
<h6>Google Play</h6>
<p><a href="http://developer.android.com/intl/ja/distribute/googleplay/promote/badges.html">http://developer.android.com/intl/ja/distribute/googleplay/promote/badges.html</a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.app-studio.jp/2013/11/24/102/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cocos2d-xでandroid端末で音量ボタンでメディア音量を調整するには</title>
		<link>https://www.app-studio.jp/2013/11/22/90/</link>
		<comments>https://www.app-studio.jp/2013/11/22/90/#comments</comments>
		<pubDate>Thu, 21 Nov 2013 15:27:53 +0000</pubDate>
		<dc:creator><![CDATA[katsuji.otsuka]]></dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[開発]]></category>
		<category><![CDATA[cocos2d-x]]></category>

		<guid isPermaLink="false">http://www.app-studio.jp/?p=90</guid>
		<description><![CDATA[Android側のソースにsetVolumeControlStreamを書いてあればOK。]]></description>
				<content:encoded><![CDATA[<p>Android側のソースにsetVolumeControlStreamを書いてあればOK。</p>
<pre class="brush: java; highlight: [11]; title: ; notranslate">
package hoge;
 
import org.cocos2dx.lib.Cocos2dxActivity;
import android.os.Bundle;
import android.media.AudioManager;
 
public class Hoge extends Cocos2dxActivity {
 
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
    }
    
    static {
         System.loadLibrary(&quot;cocos2dcpp&quot;);
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.app-studio.jp/2013/11/22/90/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac OS X MavericksにしてAndroid SDK Managerのxmlパースが失敗した場合</title>
		<link>https://www.app-studio.jp/2013/11/20/85/</link>
		<comments>https://www.app-studio.jp/2013/11/20/85/#comments</comments>
		<pubDate>Wed, 20 Nov 2013 13:06:42 +0000</pubDate>
		<dc:creator><![CDATA[katsuji.otsuka]]></dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[開発]]></category>

		<guid isPermaLink="false">http://www.app-studio.jp/?p=85</guid>
		<description><![CDATA[開発用のMacをMavericksにアップデートした際に、Android SDK Manaerで更新出来なくなった。 こんな感じのエラーが出たので調べたところ、javaのバージョンが変わってssl関係でエラーが出てたみた ...]]></description>
				<content:encoded><![CDATA[<p>開発用のMacをMavericksにアップデートした際に、Android SDK Manaerで更新出来なくなった。</p>
<pre class="brush: plain; title: ; notranslate">
Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml
Fetched Add-ons List successfully
Fetching URL: https://dl-ssl.google.com/android/repository/repository-8.xml
Done loading packages.
Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml
Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-2.xml, reason: peer not authenticated
Fetched Add-ons List successfully
Fetching URL: https://dl-ssl.google.com/android/repository/repository-8.xml
Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-8.xml, reason: SSLPeerUnverified peer not authenticated
Done loading packages.
</pre>
<p>こんな感じのエラーが出たので調べたところ、javaのバージョンが変わってssl関係でエラーが出てたみたい。<br />
なので、SSLをオフにして通信する設定をして解決した。</p>
<p>具体的には&#8221;~/.android/androidtool.cfg&#8221;に以下の設定を書くだけ。</p>
<pre class="brush: plain; title: ; notranslate">
sdkman.force.http=true
</pre>
<p>とりあえずこれでアップデートできた。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.app-studio.jp/2013/11/20/85/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cocos2d-xにScoreCenterを入れてみる</title>
		<link>https://www.app-studio.jp/2013/11/19/70/</link>
		<comments>https://www.app-studio.jp/2013/11/19/70/#comments</comments>
		<pubDate>Tue, 19 Nov 2013 11:38:25 +0000</pubDate>
		<dc:creator><![CDATA[katsuji.otsuka]]></dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[開発]]></category>
		<category><![CDATA[cocos2d-x]]></category>
		<category><![CDATA[ScoreCenter]]></category>

		<guid isPermaLink="false">http://www.app-studio.jp/?p=70</guid>
		<description><![CDATA[cocos2d-xにScoreCenterを入れた時のメモ。 使い方的にはc++のクラスからjniで呼び出す形で実装した。 javaのメソッドに関しては面倒だったんで全部staticにした。 手順など 基本的にはSDKに ...]]></description>
				<content:encoded><![CDATA[<p>cocos2d-xに<a title="ScoreCenter" href="http://scorecenter.jp/" target="_blank">ScoreCenter</a>を入れた時のメモ。</p>
<p>使い方的にはc++のクラスからjniで呼び出す形で実装した。<br />
javaのメソッドに関しては面倒だったんで全部staticにした。</p>
<h5>手順など</h5>
<p>基本的にはSDKにDocumentが添付されているので、それに従っていけばOKでした。</p>
<p>1. proj.android/AndroidManifest.xmlを設定<br />
2. proj.android/libs/にSDKのjarファイルを置く<br />
3. c++側のコードを書く。(以下サンプル)</p>
<pre class="brush: cpp; title: ScoreCenter.h; notranslate">
#include &quot;cocos2d.h&quot;

USING_NS_CC;

class ScoreCenter : public CCObject {
public:
	static bool isAvailable();
	static void login();
	static void postScore(const char* key, const char* score);
	static void showRanking(const char* key);
};

</pre>
<pre class="brush: cpp; title: ScoreCenter.cpp; notranslate">
#include &quot;cocos2d.h&quot;

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
USING_NS_CC;

#include &quot;ScoreCenter.h&quot;
#include &lt;jni.h&gt;
#include &quot;jni/JniHelper.h&quot;

#define CLASS_NAME &quot;hoge/huga/SC&quot;

bool ScoreCenter::isAvailable() {
    JniMethodInfo t;
    if (JniHelper::getStaticMethodInfo(t, CLASS_NAME,
										&quot;isAvailable&quot;, &quot;()Z&quot;)) {
        jboolean result = t.env-&gt;CallStaticBooleanMethod(t.classID, t.methodID);
        if (result == JNI_TRUE) {
            return true;
            
        } else {
            return false;
        }
    }
    return false;
}

void ScoreCenter::login() {
    if (!isAvailable()) {
        return;
    }
    
    JniMethodInfo t;
    if (JniHelper::getStaticMethodInfo(t, CLASS_NAME,
										&quot;login&quot;, &quot;()V&quot;)) {
        t.env-&gt;CallStaticVoidMethod(t.classID, t.methodID);
        t.env-&gt;DeleteLocalRef(t.classID);
    }
}

void ScoreCenter::postScore(const char* key, const char* score) {
    if (!isAvailable()) {
        return;
    }

    JniMethodInfo t;
    if (JniHelper::getStaticMethodInfo(t, CLASS_NAME,
                                       &quot;postScore&quot;, &quot;(Ljava/lang/String;Ljava/lang/String;)V&quot;)) {
        jstring jkey   = t.env-&gt;NewStringUTF(key);
        jstring jscore = t.env-&gt;NewStringUTF(score);
        t.env-&gt;CallStaticVoidMethod(t.classID, t.methodID, jkey, jscore);
        t.env-&gt;DeleteLocalRef(jkey);
        t.env-&gt;DeleteLocalRef(jscore);
        t.env-&gt;DeleteLocalRef(t.classID);
    }
}

void ScoreCenter::showRanking(const char* key) {
    if (!isAvailable()) {
        return;
    }

    JniMethodInfo t;
    if (JniHelper::getStaticMethodInfo(t, CLASS_NAME,
                                       &quot;showRanking&quot;, &quot;(Ljava/lang/String;)V&quot;)) {
        jstring jkey = t.env-&gt;NewStringUTF(key);
        t.env-&gt;CallStaticVoidMethod(t.classID, t.methodID, jkey);
        t.env-&gt;DeleteLocalRef(jkey);
        t.env-&gt;DeleteLocalRef(t.classID);
    }
}

#endif
</pre>
<p>4. java側のコードを書く。(以下サンプル)</p>
<pre class="brush: java; title: hoge/huga/SC.java; notranslate">
package hoge.huga;

import android.app.Activity;
import java.lang.String;
import android.content.Context;
import org.cocos2dx.lib.Cocos2dxActivity;
import **********ScoreCenter; (※ここはDocument読んで対応してください)

public class SC {
    private static ScoreCenter instance = null;

    public static boolean isAvailable() {
        return (android.os.Build.VERSION.SDK_INT &gt;= 7); 
    }   

    private static void init() {
        if (SC.instance == null) {
            final Context context = Cocos2dxActivity.getContext();
            Activity activity = (Activity)context;
            activity.runOnUiThread(new Runnable() {
                public void run() {
                    SC.instance = ScoreCenter.getInstance();
                    SC.instance.initialize(context.getApplicationContext());
                    SC.instance.hello();
                }   
            }); 
        }   
    }   
    
    public static void login() {
        SC.init();
    }   
    
    public static void postScore(String key, String score) {
        SC.instance.postScore(key, score);
    }   

    public static void showRanking(final String key) {
        Activity activity = (Activity)Cocos2dxActivity.getContext();
        activity.runOnUiThread(new Runnable() {
            public void run() {
                SC.instance.show(key);
            }   
        }); 
    }   
}
</pre>
<p>こんなかんじ。</p>
<p>ちょっとハマった点として、ScoreCenterのinitialize()呼んだ時か、hello()を呼び出した時にログイン可否チェックが入ってログイン画面が表示されるのかなと思ってたんですが、<br />
show()を呼び出した後にログインして貰わないといけないらしい。<br />
まぁ、ログインする前にpostScoreしても送信NGとなって、ローカルに保存されていて、後からログインした時に送られるようなので問題ないと言えば問題ないですが、出来ればログインチェックのメソッドがあるといいな。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.app-studio.jp/2013/11/19/70/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- ZenCache is NOT caching this page, because `$_SERVER['REQUEST_URI']` indicates this is a `/feed`; and the configuration of this site says not to cache XML-based feeds. -->