StoryCode

이클립스에 FIrebase Jar 추가하기

Eclipse/(Fail) FCM with Eclipse.No support By G
반응형

firebaseXXXXXX.aar 들 에서 추출한 classes.jar 를 이클립스에 Add External JARS 로 추가한다.

( classes.jar 는 이름이 같아서 Module 별로 Rename 함. )


반응형

'Eclipse > (Fail) FCM with Eclipse.No support By G' 카테고리의 다른 글

6. 추가 설정  (0) 2018.05.02
5. 이클립스에 FCM Jar 설치하는 방법  (0) 2018.04.30
4. 이클립스 + FCM  (0) 2018.04.26
3. App 에 등록  (0) 2018.04.26
2. FireBase 에서 프로젝트 만들기  (0) 2018.04.26

이클립스 프로젝트 복사해서 사용하기

Eclipse/Eclipse 사용법
반응형

1) 프로젝트 폴더를 통째로 Copy & Paste 한다.


2) 복사한 프로젝트 폴더에서 .project 파일을 열어, <name>프로젝트명</name> 을 변경한다.


3) 혹시 cvs 나 svn 폴더가 있다면 삭제한다.


4) 이클립스에서 Import > Existing Projects into WorkSpace 으로 복사한 프로젝트를 불러 들인다.


5) Package Explorer 에서 프로젝트 혹은 소스에 마우스 오른쪽 클릭후 Refactor > Rename 으로 Java 패키치명등을 변경해준다.

반응형

'Eclipse > Eclipse 사용법' 카테고리의 다른 글

설치  (0) 2018.05.02

설치

Eclipse/Eclipse 사용법
반응형

[ 참고 ] http://androiddev.tistory.com/381



반응형

'Eclipse > Eclipse 사용법' 카테고리의 다른 글

이클립스 프로젝트 복사해서 사용하기  (1) 2018.05.02

6. 추가 설정

Eclipse/(Fail) FCM with Eclipse.No support By G
반응형

[참고] https://blog.naver.com/websearch/220830134106


- strings.xml 과 google-services.json 에 아래 내용을 추가


Eclipse Project > res > values > strings.xml 을 열어, 아래 내용을 추가.

    <string name="default_web_client_id" translatable="false"></string>

    <string name="firebase_database_url" translatable="false"></string>
    <string name="gcm_defaultSenderId" translatable="false"></string>
    <string name="google_api_key" translatable="false"></string>
    <string name="google_app_id" translatable="false"></string>
    <string name="google_storage_bucket" translatable="false"></string>












- Firebase 에서 google-services.json 파일을 다운로드 받아 아래 내용을 추가

(Firebase 로그인후, 앱을 선택한 다음, 기어아이콘.Project Setting 를 누르면 다운로드 받을 수 있다.)


  - 왼쪽이 strings.xml 파일의 name 이고 오른쪽이 google-services.json 파일의 항목을 의미한다.


  * default_web_client_id : client -> oauth_client -> client_id

  * firebase_database_url : project_info -> firebase_url

  * ​gcm_defaultSenderId : project_info -> project_number

  * ​google_api_key : client -> api_key -> current_key

  * ​google_app_id : client -> client_info -> mobilesdk_app_id

  * ​google_storage_bucket : project_info -> storage_bucket
















- AndroidManifest.xml 을 수정.

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.namespace.project"

    android:versionCode="1"

    android:versionName="1.0" >


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

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


    <uses-sdk

        android:minSdkVersion="17"

        android:targetSdkVersion="21" />


    <!-- FCM Message Receive Permission.Begin -->

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

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

    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

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

    <permission android:name="com.testfcm.permission.C2D_MESSAGE" android:protectionLevel="signature"/> 

    <uses-permission android:name="com.testfcm.permission.C2D_MESSAGE"/> 

    <!-- FCM Message Receive Permission.End -->


    <application

        android:allowBackup="true"

        android:icon="@drawable/logo"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name="com.namespace.project.MainActivity"

            android:label="@string/app_name"

            android:screenOrientation="portrait" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>


        <!-- FCM Message/ID Receive Service.Below Application Tag.BEGIN  -->   

    <service android:name=".FCMService">

      <intent-filter>

          <action android:name="com.google.firebase.MESSAGING_EVENT" />

      </intent-filter>

    </service>

    <service android:name=".FCMIDService" >

      <intent-filter>

          <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />

      </intent-filter>

    </service>

<!-- FCM Message/ID Receive Service.Below Application Tag.END  -->


    <!-- FCM Receiver.BEGIN -->

    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" 

      android:permission="com.google.android.c2dm.permission.SEND"> 

            <intent-filter> 

                <action android:name="com.google.android.c2dm.intent.RECEIVE"/> 

                <action android:name="com.google.android.c2dm.intent.REGISTRATION"/> 

                <category android:name="com.namespace.project"/> 

            </intent-filter> 

    </receiver> 

    

    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver"

       android:exported="false" >

            <intent-filter android:priority="-500"> 

                <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 

            </intent-filter> 

    </receiver>

    <!-- FCM Receiver.END -->


<!-- FCM Provider.BEGIN -->

    <provider

         android:authorities="com.com.namespace.proejct.firebaseinitprovider"

         android:name="com.google.firebase.provider.FirebaseInitProvider"

         android:exported="false"

         android:initOrder="100" />

    <!-- FCM Provider.END -->


    </application>


</manifest>

반응형

5. 이클립스에 FCM Jar 설치하는 방법

Eclipse/(Fail) FCM with Eclipse.No support By G
반응형

1. 이클립스에서 Android SDK Manager 프로그램을 실행한다.


2. Extras 에 Google Repository 체크후, Install XX Packages 클릭한다.


3.Android SDK Manager 설치 폴더아래 "extras\google\m2repository\com\google\firebase\firebase-messaging\최신버전" 으로 이동한다.


4. firebase-messaging-XX.X.X.aar 을 firebase-messaging-XX.X.X.zip 으로 복사한다.


5.복사한 zip 안에 classes.jar 가 있는데, 이 파일을 zip 밖으로 빼낸다.


6. firebase-common-9.6.1.jar 와 firebase-iid-9.6.1.jar 도 같은 작업을 반복 한다.


반응형

'Eclipse > (Fail) FCM with Eclipse.No support By G' 카테고리의 다른 글

이클립스에 FIrebase Jar 추가하기  (0) 2018.05.04
6. 추가 설정  (0) 2018.05.02
4. 이클립스 + FCM  (0) 2018.04.26
3. App 에 등록  (0) 2018.04.26
2. FireBase 에서 프로젝트 만들기  (0) 2018.04.26

4. 이클립스 + FCM

Eclipse/(Fail) FCM with Eclipse.No support By G
반응형

이클립스에서 FCM 기반 앱 개발하기 위한 준비 사항.


1. 안드로이드 앱 프로젝트를 시작한다.


2. FCM 라이브러리를 이클립스에 설치한다.

http://storycode.tistory.com/13 참조


3. google-play-serivces_lib 프로젝트를 import 한다.

  - SDK Manager 에서 최신 버전을 설치하면 google-play-serivces_lib 프로젝트가 존재하지 않는 것 같다.

  - 그래서, 아래의 포스트에서 google-play-services_lib 프로젝트를 다운로드 받아서 import 한다.

    * http://blog.naver.com/websearch/220830144941

  - google-play-services_lib 프로젝트를 import 하는 이유는 firebase 에서 google-play-service 를 필요로 하고 해당 R 클래스도 필요로 하기 때문이다.

  - import 한 google-play-services_lib 를 FCM 앱의 라이브러리로 포함시킨다.


4. FCM 을 위한 google-services.json 파일 다운로드 및 적용

  - https://firebase.google.com/docs/cloud-messaging/ 에 접속하여서 새 프로젝트를 생성한 후, google-services.json 파일을 다운로드한다.
  - 아래의 포스트와 같이 google-services.json 파일의 내용을 strings.xml 파일에 저장한다.

5. FCM 을 위한 AndroidManifest.xml 파일 수정
  - 아래의 포스트와 같이 AndroidManifest.xml 파일을 수정하세요.

6. FCM token 생성 요청
  - MainActivity.java 소스 코드를 아래와 같이 개발하여서 FCM token 을 생성 요청한다.
  - FCM token 이 생성된 상태이면 FirebaseInstanceId.getInstance().getToken() 호출시 token 을 가져오고 그렇지 않으면 null 을 가져온다.

public class MainActivity extends Activity
{
 private static String TAG = "MainActivity";
 
 @Override
 protected void onCreate( Bundle savedInstanceState )
 {
  super.onCreate( savedInstanceState );
  setContentView( R.layout.activity_main );
    
  FirebaseMessaging clsMessaging = FirebaseMessaging.getInstance();
  clsMessaging.subscribeToTopic("news");
  
  String token = FirebaseInstanceId.getInstance().getToken();
  Log.e( "token2", "token[" + token + "]" );
 }
}

7. FCM token 생성 이벤트 수신
  - FCM token 생성 이벤트 수신을 위한 서비스를 개발한다. 클래스 이름은 AndroidManifest.xml 에 기술한 이름과 동일해야 한다.

public class FCMIDService extends FirebaseInstanceIdService
{
 private static final String LOG_TAG = "FCMIDService";

 @Override
 @WorkerThread
 public void onTokenRefresh()
 {
  super.onTokenRefresh( );
  
  String strToken = FirebaseInstanceId.getInstance().getToken();
  
  Log.d( LOG_TAG, "token[" + strToken + "]" );
 }
}


8. FCM 메시지 이벤트 수신

  - FCM 메시지 이벤트 수신을 위한 서비스를 개발한다. 클래스 이름은 AndroidManifest.xml 에 기술한 이름과 동일해야 한다.


public class FCMService extends com.google.firebase.messaging.FirebaseMessagingService 
{
 private static final String LOG_TAG = "FCMService";


 @Override
 @WorkerThread
 public void onMessageReceived( RemoteMessage arg0 )
 {
  super.onMessageReceived( arg0 );
    
  Map<String,String> clsData = arg0.getData( );
  
  for( Map.Entry<String, String> it : clsData.entrySet( ) )
  {
   Log.d( LOG_TAG, "key(" + it.getKey( ) + ") value(" + it.getValue( ) + ")" );
  }
  
  Notification clsNotification = arg0.getNotification( );
  if( clsNotification != null )
  {
   Log.d( LOG_TAG, "notification body(" + clsNotification.getBody( ) + ")" );
  }
 }
} 




[추가정보1]

3. google-play-serivces_lib 프로젝트를 import 한다.  수행시

google-play-services_lib 를 단순히 Java Build Path 의 Libraries 에 추가하면 

6번의 AndroidManifest.xml 의
    <provider
         android:authorities="com.gcharger.client.firebaseinitprovider"
         android:name="com.google.firebase.provider.FirebaseInitProvider"
         android:exported="false"
         android:initOrder="100" />
부분과 7번 
FirebaseMessaging clsMessaging = FirebaseMessaging.getInstance();
clsMessaging.subscribeToTopic("news");
String token = FirebaseInstanceId.getInstance().getToken();
부분에서 Runtime Error 가 발생한다.

google-play-services_lib 를 Java Build Path 의 라이브러리가 아닌 android Library 로 추가해 주어야 한다. 

[추가정보2]
정상적으로 모든 작업을 마치고 firebase console 에서 메시지를 발송하면 어플로 푸시가 들어오는것을 확인할 수 있지만 FCMService 의 onMessageReceived 에 Notification sound 를 설정해도 어플이 백그라운드 상태에서는 소리가 나지 않는다.
어플이 백그라운드 상태에서 firebase console 로부터 수신된 푸시는 onMessageReceived 를 타지 않기때문!
서버측 프로그램을 만들어 푸시를 발송하면 onMessageReceived 의 Notification 을 통해 메시지가 수신되면서 소리 및 Notification 설정대로 푸시 메시지가 수신된다.


반응형

3. App 에 등록

Eclipse/(Fail) FCM with Eclipse.No support By G
반응형

1) 생성된 App 에서 ID 확인


2) Android Studio 에 추가


반응형

2. FireBase 에서 프로젝트 만들기

Eclipse/(Fail) FCM with Eclipse.No support By G
반응형

1) https://console.firebase.google.com/u/0/project/fir-demo-project/notification?pli=1



2) 프로젝트 추가


3) 가운데 "Add Firebase to you Android app" 을 App 생성


반응형

'Eclipse > (Fail) FCM with Eclipse.No support By G' 카테고리의 다른 글

6. 추가 설정  (0) 2018.05.02
5. 이클립스에 FCM Jar 설치하는 방법  (0) 2018.04.30
4. 이클립스 + FCM  (0) 2018.04.26
3. App 에 등록  (0) 2018.04.26
1. 새 프로젝트 만들기  (0) 2018.04.26

1. 새 프로젝트 만들기

Eclipse/(Fail) FCM with Eclipse.No support By G
반응형

1) https://console.developers.google.com 에서 우측 상단에 [ + ] 을 눌러 프로젝트를 생성.




2) API 추가



3) API 키추가



반응형

'Eclipse > (Fail) FCM with Eclipse.No support By G' 카테고리의 다른 글

6. 추가 설정  (0) 2018.05.02
5. 이클립스에 FCM Jar 설치하는 방법  (0) 2018.04.30
4. 이클립스 + FCM  (0) 2018.04.26
3. App 에 등록  (0) 2018.04.26
2. FireBase 에서 프로젝트 만들기  (0) 2018.04.26