Android实现开屏广告(广点通SDK)

原创 2018年04月17日 13:37:08

一、注册腾讯广告账号

注册腾讯广告联盟账号:http://e.qq.com/dev/index.html

二、新建广告位

新建广告位并下载SDK,记住自己的广告位ID和应用ID。

三、接入SDK

1、解压SDK,将jar文件复制到libs目录中,点击sync按钮(as顶部工具栏)。在AndroidManifest.xml中声明权限。

   <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES"/>

2、然后在<application>标签中加入:

<!-- 腾讯声明SDK所需要的组件 -->

<service
    android:name="com.qq.e.comm.DownloadService"
    android:exported="false" >
</service>
<!-- 请开发者注意字母的大小写,ADActivity,而不是AdActivity -->
<activity
    android:name="com.qq.e.ads.ADActivity"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize" >
</activity>

3、新建SplashActivity,布局文件activity_splash.xml,代码如下:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</RelativeLayout>

4、SplashActivity代码如下:

public class SplashActivity extends AppCompatActivity {

    private RelativeLayout container;
    private boolean canJump;

    @SuppressLint("WrongViewCast")
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash1);
        container = (RelativeLayout) findViewById(R.id.container);
        //运行时权限处理
        List<String> permissionList = new ArrayList<>();
        if (ContextCompat.checkSelfPermission(this,
                Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED){
                permissionList.add(Manifest.permission.READ_PHONE_STATE);
        }
        if (ContextCompat.checkSelfPermission(this,
                Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED){
            permissionList.add(Manifest.permission.ACCESS_COARSE_LOCATION);
        }
        if (ContextCompat.checkSelfPermission(this,
                Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
            permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
        }
        if (!permissionList.isEmpty()){
            String [] permissions = permissionList.toArray(new String[permissionList.size()]);
            ActivityCompat.requestPermissions(this,permissions,1);
        }else{
            requestAds();
        }

    }

    /*
    *
    * 请求开屏广告
    * */
    private void requestAds() {
        String appId="1106336831";
        String adId = "5020929588094641";
        new SplashAD(this, container, appId, adId, new SplashADListener() {
            @Override
            public void onADDismissed() {
                //广告显示完毕
                forward();
            }

            @Override
            public void onNoAD(AdError adError) {
                //广告加载失败
                forward();
            }

            @Override
            public void onADPresent() {
                //广告加载成功
            }

            @Override
            public void onADClicked() {
                //广告被点击
            }

            @Override
            public void onADTick(long l) {

            }
        });
    }

    @Override
    protected void onPause() {
        super.onPause();
        canJump = false;
    }

    @Override
    protected void onResume() {
        super.onResume();
        if(canJump) {
            forward();
        }
        canJump = true;
    }

    private void forward() {
        if (canJump){
            //跳转到MainActivity
            Intent intent = new Intent(this,MainActivity.class);
            startActivity(intent);
            finish();
        }else {
            canJump = true;
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode){
            case 1:
                if (grantResults.length>0){
                    for(int result:grantResults){
                        if (result != PackageManager.PERMISSION_GRANTED){
                            Toast.makeText(this,"必须同意所有权限才能使用本程序",
                                    Toast.LENGTH_SHORT).show();
                            finish();
                            return;
                        }
                    }
                    requestAds();
                }else {
                    Toast.makeText(this,"发生未知错误",Toast.LENGTH_SHORT).show();
                    finish();
                }
                break;
            default:
        }
    }
}

5、最后将主活动设置为SplashActivity,将AndroidManifest里activity中的.MainActivity修改为.SplashActivity。



广点通sdk接入 _开屏广告

广点通sdk接入 _开屏广告1:导入架包android-query-full.0.26.7.jar,GDTUnionSDK.4.8.513.jar 2:配置权限等相关操作: ...
  • sunshine_mood
  • sunshine_mood
  • 2015-12-17 15:49:23
  • 3909

腾讯广点通开屏广告错误码

安卓 开屏广告 错误码 100135
  • worst_hacker
  • worst_hacker
  • 2017-08-09 09:55:47
  • 3503

广点通errorCode几广告的实现

首先注册广点通的账号这里得说一下, 广点通的客服可好了.态度特别好..所以顶.然后集成广点通官方的SDK及代码因为比较简单, 这里就不明确提示了, 直接去找SDK就好了 我做的是插屏广告, 如下:i...
  • AdrianAndroid
  • AdrianAndroid
  • 2015-10-15 19:50:18
  • 3548

广点通sdk接入 _Banner广告

广点通sdk接入 _Banner广告1:导入相关架包,写入相关权限和配置 android-query-full.0.26.7.jar GDTUnionSDK.4.8.513.jar ...
  • sunshine_mood
  • sunshine_mood
  • 2015-12-17 17:25:17
  • 4668

广点通sdk接入 _原生广告

广点通sdk接入 _原始广告1:导入相关架包,写入相关权限和配置 android-query-full.0.26.7.jar GDTUnionSDK.4.8.513.jar Volley.jar//本...
  • sunshine_mood
  • sunshine_mood
  • 2015-12-17 19:46:16
  • 2159

iOS_广点通接入

4.推广费用计算与结算 4.1 腾讯可能根据实际需要对费用的结算比例、结算周期、方式进行修改和变更,前述修改、变更前,腾讯将在相应服务页面进行通知或公告,具体按每月实际执行政策确定,您应当予以遵守。如...
  • u012576807
  • u012576807
  • 2016-08-02 19:11:40
  • 1229

Unity3D使用腾讯广点通广告

Unity3D使用腾讯广点通广告很多做Android开发、游戏开发的朋友找我咨询,开发的应用、游戏如何赚钱,今天我分享下我的经验吧。App想在国内赚钱,“软件收费”是基本上做不起来的,大家都懂,没什么...
  • qixingchao
  • qixingchao
  • 2015-07-18 19:49:21
  • 5336

Cocos2d-x 3.X, Android Studio版添加广点通广告平台

考虑到以下两点: 1. Cocos2d-x从3.7版开始优化对Android Studio的支持,相信这一趋势还会继续。可惜目前相关帮助文档还不完善,很多东西需要自己摸索。 2. 广点通广告平台的官方...
  • u014078216
  • u014078216
  • 2015-10-21 15:23:22
  • 2038

广点通sdk接入 _插屏广告

广点通sdk接入 _插屏广告1:导入相关架包,写入相关权限和配置 android-query-full.0.26.7.jar GDTUnionSDK.4.8.513.jar ...
  • sunshine_mood
  • sunshine_mood
  • 2015-12-17 17:50:46
  • 2668

广点通sdk接入 _应用墙广告

广点通sdk接入 _应用墙广告1:导入相关架包,写入相关权限和配置 android-query-full.0.26.7.jar GDTUnionSDK.4.8.513.jar ...
  • sunshine_mood
  • sunshine_mood
  • 2015-12-17 17:56:00
  • 3043
收藏助手
不良信息举报
您举报文章:Android实现开屏广告(广点通SDK)
举报原因:
原因补充:

(最多只允许输入30个字)