Athana SDK

For Games

推送服务

配置

在 AndroidManifest.xml 中添加以下配置,用于更改系统推送的样式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<manifest ...>

<application ...>

<!-- 推送通知图标资源ID -->
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@android:drawable/ic_popup_sync" />

<!-- 推送通知频道ID -->
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="push_channel" />

</application>

</manifest>

权限申请

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// MainActivity.kt
class MainActivity: Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
..

// 检查是否有申请 POST_NOTIFICATION 权限
val granted = NotificationHelper.checkPostNotificationPermission()
if (!granted) {
// 预初始化权限申请
// 如果 Activity 没有实现 androidx.activity.result.ActivityResultCaller 接口
// 则不用调用以下方法
// 以下方法必须在 onCreate 调用
NotificationHelper.prePermissionRequest(this)
}
}

// 注意:如果 Activity 有实现 androidx.activity.result.ActivityResultCaller 接口
// 则不用覆写以下方法
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String?>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
NotificationHelper.onRequestPermissionsResult(requestCode, permissions, grantResults)
}

// 在合适的时机调用以下方法发起通知权限申请
private fun requestPermission() {
NotificationHelper.requestPostNotificationPermission()
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// MainActivity.java
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
..
// 检查是否有申请 POST_NOTIFICATION 权限
boolean granted = NotificationHelper.checkPostNotificationPermission();
if (!granted) {
// 预初始化权限申请
// 如果 Activity 没有实现 androidx.activity.result.ActivityResultCaller 接口
// 则不用调用以下方法
// 以下方法必须在 onCreate 调用
NotificationHelper.prePermissionRequest(this);
}
}

// 注意:如果 Activity 有实现 androidx.activity.result.ActivityResultCaller 接口
// 则不用覆写以下方法
@override
public void onRequestPermissionsResult(
int requestCode,
@NonNull String[] permissions,
@NonNull int[] grantResults
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
// 回传结果
NotificationHelper.onRequestPermissionsResult(requestCode, permissions, grantResults)
}

// 在合适的时机调用以下方法发起通知权限申请
private void requestPermission() {
NotificationHelper.requestPostNotificationPermission()
}
}
0%