極速開屏服務(wù)由HUAWEI Ads推出,在提升用戶開屏體驗的同時為您提供全新的廣告變現(xiàn)方案,您無需集成SDK即可全版本接入極速開屏服務(wù)。
前提條件
1. HMS Core 4.0.3.300及以上版本。
2. EMUI 10.0.1.170以上版本的華為設(shè)備。
使用場景
接入了華為極速開屏的應(yīng)用,在用戶同意應(yīng)用的用戶協(xié)議之前,極速開屏不會展示。
當用戶協(xié)議的同意狀態(tài)發(fā)生變化時(用戶同意或者撤銷同意),需要將最新狀態(tài)同步到HUAWEI Ads。
調(diào)用流程
開發(fā)步驟
用戶協(xié)議同意狀態(tài)同步至HUAWEI Ads
1.創(chuàng)建接口ExSplashService的AIDL文件,放置在com.huawei.hms.ads包路徑下,如下圖:
2.將以下內(nèi)容復(fù)制到AIDL文件中。
package com.huawei.hms.ads;
interface ExSplashService {
void enableUserInfo(boolean enable);
}
3.創(chuàng)建一個類,實現(xiàn)Android原生的ServiceConnection接口。
a.實現(xiàn)ServiceConnection的onServiceConnected方法。
b.調(diào)用Android原生的ExSplashService.Stub.asInterface方法獲取ExSplashService。
c.調(diào)用enableUserInfo方法同步用戶協(xié)議狀態(tài)。
public final class ExSplashServiceConnection implements ServiceConnection {
private static final String TAG = "ExSplashServiceConnection";
private Context context;
public ExSplashServiceConnection(Context context) {
this.context = context;
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Log.i(TAG, "onServiceConnected");
ExSplashService exSplashService = ExSplashService.Stub.asInterface(service);
if (exSplashService != null) {
try {
// 同意為true,不同意為false
exSplashService.enableUserInfo(true);
} catch (RemoteException e) {
Log.i(TAG, "enableUserInfo error");
} finally {
context.unbindService(this);
}
}
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.i(TAG, "onServiceDisconnected");
}
}
4.連接極速開屏的AIDL服務(wù)。
a.創(chuàng)建一個ExSplashServiceConnection實例。
b.創(chuàng)建一個Intent,Action是“com.huawei.hms.ads.EXSPLASH_SERVICE”。
c.設(shè)置Intent的包名為“com.huawei.hwid”。
d.調(diào)用bindService連接極速開屏的AIDL服務(wù)。
private boolean bindService(Context context) {
ExSplashServiceConnection serviceConnection = new ExSplashServiceConnection(context);
Intent intent = new Intent("com.huawei.hms.ads.EXSPLASH_SERVICE");
intent.setPackage("com.huawei.hwid");
boolean result = context.bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
Log.i(TAG, "bindService result: " + result);
return result;
}
(可選)極速開屏廣告廣播通知
在極速開屏廣告展示時,HUAWEI Ads會通過發(fā)送一個廣播通知應(yīng)用,廣播的ACTION為“com.huawei.hms.ads.EXSPLASH_DISPLAYED”,應(yīng)用可以注冊一個廣播接收器來接受此廣播,并自行決策如何使用。
1.創(chuàng)建廣播接收器,實現(xiàn)一個繼承BroadcastReceiver的類,并實現(xiàn)onReceive方法。
public class ExSplashBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent == null) {
return;
}
String action = intent.getAction();
if (action.equals("com.huawei.hms.ads.EXSPLASH_DISPLAYED")) {
// 根據(jù)業(yè)務(wù)場景處理此通知
}
}
}
2.注冊廣播接收器,建議在應(yīng)用啟動時即注冊。
IntentFilter filter = new IntentFilter("com.huawei.hms.ads.EXSPLASH_DISPLAYED");
registerReceiver(new ExSplashBroadcastReceiver(), filter);