# Android

### Điều kiện:

1. Bạn phải có 1 project trên [Firebase Console](https://console.firebase.google.com/).
2. Bạn cần phải cấu hình Firebase cho Android project của bạn. Hướng dẫn chi tiết [xem tại đây](https://firebase.google.com/docs/android/setup#add_firebase_to_your_app).

### 1. Nếu bạn chưa có tài khoản, hãy đăng ký tại [pushdy.com](https://dashboard.pushdy.com/#/register)

1\. Truy cập [Dashboard](https://dashboard.pushdy.com)\
2\. Tạo 1 ứng dụng nếu bạn chưa có

![](https://642812566-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LivEjU_mWUsjVlvp1TF%2F-LvPQVpxB-_PIfJ2Kb-b%2F-LvPTGRWP_SvBbd012UV%2F1.png?alt=media\&token=02542cac-7e4d-489a-830b-f5b4803d014f)

### 2. Thiết lập Mobile Push cho ứng dụng của bạn

1\. Truy cập vào trang Settings.\
2\. Chọn **Google Android** để bắt đầu thiết lập.

![](https://642812566-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LivEjU_mWUsjVlvp1TF%2F-LjP8TnIRsJEqQk3qjOr%2F-LjP9X30UWSUWZVkfspm%2FScreen%20Shot%202019-07-10%20at%2011.34.36%20AM.png?alt=media\&token=7e54cc9c-1ecd-45de-8cd8-d99575d209e2)

3\. Cấu hình Mobile Push cho Android

![](https://642812566-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LivEjU_mWUsjVlvp1TF%2F-LjUAQLnvPCbIayRWaoB%2F-LjUAr3WD_ThUXsjIlPB%2FScreen%20Shot%202019-07-11%20at%2010.58.27%20AM.png?alt=media\&token=ba2d1143-ff0d-45f6-b7eb-09fb3e2e6f1b)

* *FCM Key:* Bạn có thể tìm thấy mã **firebase cloud message** từ [Firebase console](https://console.firebase.google.com/) trong mục **Project Settings.** Nếu bạn chưa có Firebase project, vui lòng xem hướng dẫn tạo một Firebase project và cách lấy FCM key [tại đây](https://guide.pushdy.com/i/cai-dat/cach-tao-firebase-server-key).
* Submit để lưu và hoàn tất bước cấu hình.

### 3. Cài đặt SDK cho Android app

Bạn có thể tích hợp Pushdy cho Android App sử dụng **Java Native SDK** (ngôn ngữ lập trình Java hoặc Kotlin) hoặc **React Native SDK** (ngôn ngữ lập trình Javascript).

**Điều kiện:**\
PushdySDK chỉ hỗ trợ từ Android 4.1 (API 16) trở lên.\
Nếu bạn dùng React Native SDK thì bạn cần nâng cấp lên phiên bản <react-native@0.60.x> hoặc mới hơn.

**Cài đặt SDK:**

***A. Trường hợp sử dụng Java Native SDK, bạn cài đặt theo các bước bên dưới:***\
Mở file build.gradle trong project của bạn và thêm gói JitPack như bên dưới:

{% tabs %}
{% tab title="Java Native SDK" %}

```
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
```

{% endtab %}
{% endtabs %}

Thêm các gói phụ thuộc:

{% tabs %}
{% tab title="Java Native SDK" %}

```
dependencies {
    implementation 'com.github.Pushdy:android-pushdy-sdk:0.0.3'
}
```

{% endtab %}
{% endtabs %}

Mở file AndroidManifest.xml và cấu hình **Firebase cloud messaging service** ở bên trong thẻ application:

{% tabs %}
{% tab title="Java Native SDK" %}

```markup
<application>
    ...
    <service
        android:name="com.pushdy.services.PDYFirebaseMessagingService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
</application>
```

{% endtab %}
{% endtabs %}

***B. Trường hợp sử dụng React Native SDK, bạn cài đặt theo các bước bên dưới:***\
Mở Terminal, đi tới thư mục gốc của project của bạn và chạy lệnh sau:

{% tabs %}
{% tab title="React Native SDK" %}

```
npm install react-native-pushdy --save
```

{% endtab %}
{% endtabs %}

**Sử dụng:**\
Khai báo sử dụng Pushdy SDK như sau:

{% tabs %}
{% tab title="Java" %}

```java
import com.pushdy.Pushdy;
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
import com.pushdy.Pushdy
```

{% endtab %}

{% tab title="React Native: Java" %}

```java
import com.reactNativePushdy.PushdySdk;
```

{% endtab %}
{% endtabs %}

Mở file `Application`  của bạn và tìm tới hàm `onCreate` và thêm dòng code khởi tạo Pushdy như bên dưới, đừng quên thay `YOUR_CLIENT_KEY` bằng Client Key của trong App của bạn. Bạn có thể xem cách lấy trong phần [Tạo ứng dụng](https://guide.pushdy.com/i/huong-dan-su-dung/tao-ung-dung).

{% tabs %}
{% tab title="Java" %}

```java
public class YourApplication extends Application 
                        implements Pushdy.PushdyDelegate {
    @Override
    public void onCreate() {
        super.onCreate();
        String clientKey = "YOUR_CLIENT_KEY";
        Pushdy.initWith(this, clientKey, this, R.drawable.ic_launcher_small);
    }
}
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
class YourApplication : Application(), Pushdy.PushdyDelegate {
    override fun onCreate() {
        super.onCreate()
        val clientKey = "YOUR_CLIENT_KEY"
        Pushdy.initWith(this, clientKey, this, R.drawable.ic_launcher_small)
    }
}
```

{% endtab %}

{% tab title="React Native: Java" %}

```java
public class YourApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        String clientKey = "YOUR_CLIENT_KEY";
        PushdySdk.getInstance().registerSdk(clientKey, 
            this, R.mipmap.ic_notification);
    }
}
```

{% endtab %}
{% endtabs %}

***Trường hợp bạn dùng React Native SDK, bạn hãy làm thêm 2 bước dưới đây để Pushdy SDK hoạt động:***\
Bước 1: Mở file `Activity`  của bạn và tìm tới hàm `onNewIntent` và thêm vào dòng code `setIntent` như bên dưới theo đúng thứ tự:

{% tabs %}
{% tab title="React Native: Java" %}

```java
@Override
public void onNewIntent(Intent intent) {
    setIntent(intent);
    super.onNewIntent(intent);
}
```

{% endtab %}
{% endtabs %}

&#x20;Bước 2: Mở project React Native cho Javascript và gọi hàm  để kích hoạt React Native SDK hoạt động:

{% tabs %}
{% tab title="React Native: Javascript" %}

```java
await Pushdy.initPushdy({
    deviceId: 'YOUR DEVICE ID'
});
```

{% endtab %}
{% endtabs %}

Như vậy là bạn đã cài đặt xong Pushdy SDK cho Android App và sẵn sàng sử dụng các tính năng.
