Unity(Android)를 통해 GCM Push 알림을 받을 수 있는 플러그인을 만들었습니다.
Unity GCMPlugin과 함께 수행합니까?
Unity Android 응용 프로그램에서 GCM(Google Cloud Messaging) 서비스로 PUSH 알림을 받는 플러그인을 사용합니다.
사용 예로 프레젠테이션 소프트웨어도 GiitHub로 높아졌다.
할 수 있는 일
설치하다.
Step1. jar 파일 다운로드
Step2. 프로젝트로jar 파일 복사
방금 다운로드한 unitygcmplugin.jar을
{あなたのUnityプロジェクト}/Assets/Plugins/Android
부하로 복사합니다.Step3. 프로젝트에 의존하는jar 파일을 복사합니다
다음jar 파일을
{YourUnityProject}/Assets/Plugins/Android
폴더 아래로 복사합니다.Step4. AndroidManifest.xml 편집
AndroidManifest.
{YourUnityProject}/Assets/Plugins/Android
에서 xml 파일을 준비합니다. 다음과 같은 편집 내용입니다.AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="info.snaka.unitygcmplugin.demo"
android:installLocation="preferExternal"
android:theme="@android:style/Theme.NoTitleBar"
android:versionCode="1"
android:versionName="1.0">
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission android:name="info.snaka.unitygcmplugin.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="info.snaka.unitygcmplugin.permission.C2D_MESSAGE" />
<application
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:debuggable="true">
<activity android:name="info.snaka.unitygcmplugin.CustomUnityPlayerActivity"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
</activity>
<receiver android:name="info.snaka.unitygcmplugin.GcmBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="info.snaka.unitygcmplugin" />
</intent-filter>
</receiver>
<service android:name="info.snaka.unitygcmplugin.GcmIntentService" />
<meta-data android:name="apiProjectNumber" android:value="!{Your project number}" />
</application>
</manifest>
참고: {Your project number}
Google Developer Constore에 표시된 항목 번호로 바꾸십시오.(이전 시도: 33;)필요에 따라 삭제하지 마십시오.설치 완료
사용법
GcmEvents 생성
"GcmEvents"라는 이름으로 빈 GameObject를 만드는 새 장면을 만듭니다.
GcmEvents에 스크립트 첨부
GcmEvents를 만들면 다음 스크립트가 표시됩니다.
GcmEvents.csusing System.Collections;
public class GcmEvents : MonoBehaviour {
string m_regid = "";
/// <summary>
/// Get registration ID from cache.
/// </summary>
void Start () {
Debug.Log ("***** Start UnityGCMPluginSample");
var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
var appContext = activity.Call<AndroidJavaObject>("getApplicationContext");
Debug.Log ("***** get RegistrationId");
var registrar = new AndroidJavaClass ("info.snaka.unitygcmpluginlib.GcmRegistrar");
registrar.CallStatic ("clearCache", new object[] { appContext });
string registrationId = registrar.CallStatic<string> ("getRegistrationId", new object[] { appContext });
if (!string.IsNullOrEmpty (registrationId))
{
Debug.Log ("***** RegistrationId:[" + registrationId + "]");
}
else
{
// Invoke background thread to get registration ID
Debug.Log ("***** id empty");
registrar.CallStatic("registerInBackground", new object[]{ appContext });
}
}
/// <summary>
/// Callback from background thread if register completed.
/// </summary>
/// <param name="registerId">Registration ID</param>
public void OnRegister(string registerId) {
Debug.Log ("##### RegisterId: " + registerId);
m_regid = registerId;
}
/// <summary>
/// Display registration ID.
/// </summary>
void OnGUI() {
GUILayout.TextArea(m_regid, GUILayout.ExpandWidth(true));
}
}
공지 준비 아이콘
공지 아이콘을 다음 위치에 배치합니다.Assets/Plugins/Android/res/drawable/notify.png
아이콘 크기
Android 아이콘 크기(2013.12 업데이트)
http://greety.sakura.ne.jp/redo/2012/02/android201202.html
PUSH 알림 테스트
터미널curl
을 사용하여 다음 PUSH 알림을 테스트 배포할 수 있습니다.$ curl --header "Authorization: key=(put your API key here)" \
--header Content-Type:"application/json" \
https://android.googleapis.com/gcm/send \
-d "{\"registration_ids\":[\"(put your Registration ID here)\"],\"data":{\"message\":\"Hello\"}}"
(put your API key here)
Google Developer Constore의 [API 및 인증 정보] - [인증 정보]에 표시된 "API 키"로 바꿉니다.
API 키 획득 방법은 다음 공식 페이지를 참조하십시오.
using System.Collections;
public class GcmEvents : MonoBehaviour {
string m_regid = "";
/// <summary>
/// Get registration ID from cache.
/// </summary>
void Start () {
Debug.Log ("***** Start UnityGCMPluginSample");
var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
var appContext = activity.Call<AndroidJavaObject>("getApplicationContext");
Debug.Log ("***** get RegistrationId");
var registrar = new AndroidJavaClass ("info.snaka.unitygcmpluginlib.GcmRegistrar");
registrar.CallStatic ("clearCache", new object[] { appContext });
string registrationId = registrar.CallStatic<string> ("getRegistrationId", new object[] { appContext });
if (!string.IsNullOrEmpty (registrationId))
{
Debug.Log ("***** RegistrationId:[" + registrationId + "]");
}
else
{
// Invoke background thread to get registration ID
Debug.Log ("***** id empty");
registrar.CallStatic("registerInBackground", new object[]{ appContext });
}
}
/// <summary>
/// Callback from background thread if register completed.
/// </summary>
/// <param name="registerId">Registration ID</param>
public void OnRegister(string registerId) {
Debug.Log ("##### RegisterId: " + registerId);
m_regid = registerId;
}
/// <summary>
/// Display registration ID.
/// </summary>
void OnGUI() {
GUILayout.TextArea(m_regid, GUILayout.ExpandWidth(true));
}
}
공지 아이콘을 다음 위치에 배치합니다.
Assets/Plugins/Android/res/drawable/notify.png
아이콘 크기Android 아이콘 크기(2013.12 업데이트)
http://greety.sakura.ne.jp/redo/2012/02/android201202.html
PUSH 알림 테스트
터미널curl
을 사용하여 다음 PUSH 알림을 테스트 배포할 수 있습니다.$ curl --header "Authorization: key=(put your API key here)" \
--header Content-Type:"application/json" \
https://android.googleapis.com/gcm/send \
-d "{\"registration_ids\":[\"(put your Registration ID here)\"],\"data":{\"message\":\"Hello\"}}"
(put your API key here)
Google Developer Constore의 [API 및 인증 정보] - [인증 정보]에 표시된 "API 키"로 바꿉니다.
API 키 획득 방법은 다음 공식 페이지를 참조하십시오.
$ curl --header "Authorization: key=(put your API key here)" \
--header Content-Type:"application/json" \
https://android.googleapis.com/gcm/send \
-d "{\"registration_ids\":[\"(put your Registration ID here)\"],\"data":{\"message\":\"Hello\"}}"
(put your Registration ID here)
애플리케이션을 시작할 때 표시된 Registration ID로 교체하십시오.알림이 성공하면 장치 상태 표시줄에 다음과 같은 알림이 표시됩니다.
알림을 누르면 프로그램이 시작됩니다.
Todo
LICENSE
The MIT License (MIT)
Reference
이 문제에 관하여(Unity(Android)를 통해 GCM Push 알림을 받을 수 있는 플러그인을 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/snaka/items/3ae170bec0a921961821
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Unity(Android)를 통해 GCM Push 알림을 받을 수 있는 플러그인을 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/snaka/items/3ae170bec0a921961821텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)