Android接入穿山甲SDK并实现开屏广告 接入

Android接入穿山甲SDK并实现开屏广告 接入

接入穿山甲SDK的时候出现一些问题,这里记录一下接入的过程,方便以后使用、查阅。

导入aar及SDK依赖的jar包

提前申请好应用的CodeId(应用ID和广告位ID),将官网下载demo压缩包内的open_ad_sdk.aar 复制到Application Module/libs文件夹(没有的话须手动创建),并将以下代码添加到您app的build.gradle中:


ndk { // 设置支持的 SO 库构架,注意这里要根据你的实际情况来设置 
   abiFilters ‘armeabi-v7a’, ‘arm64-v8a’, ‘x86’, ‘x86_64’, ‘armeabi’ 
}

repositories {
    flatDir {
        dirs 'libs'
    }
}
depedencies {
    api (name: 'open_ad_sdk', ext: 'aar')
}

在 res/xml 目录下,新建一个 xml 文件 file_paths,在该文件中添加如下代码:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
   <!--为了适配所有路径可以设置 path = "." -->
   <external-path name="tt_external_root" path="." />
   <external-path name="tt_external_download" path="Download" />
   <external-files-path name="tt_external_files_download" path="Download" />
   <files-path name="tt_internal_file_download" path="Download" />
   <cache-path name="tt_internal_cache_download" path="Download" />
</paths>

AndroidManifest配置 添加权限 、provider配置

适配Anroid7.0及以上 如果您的应用需要在Anroid7.0及以上环境运行,请在AndroidManifest中添加如下代码:

<!--必要权限-->
<uses-permission android:name="android.permission.INTERNET" />

<!--可选权限-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.GET_TASKS"/>

<!--可选,穿山甲提供“获取地理位置权限”和“不给予地理位置权限,开发者传入地理位置参数”两种方式上报用户位置,两种方式均可不选,添加位置权限或参数将帮助投放定位广告-->
<!--请注意:无论通过何种方式提供给穿山甲用户地理位置,均需向用户声明地理位置权限将应用于穿山甲广告投放,穿山甲不强制获取地理位置信息-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<!-- 如果视频广告使用textureView播放,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />

<!--demo场景用到的权限,不是必须的-->
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />

<!-- 穿山甲3400版本新增:建议添加“query_all_package”权限,穿山甲将通过此权限在Android R系统上判定广告对应的应用是否在用户的app上安装,避免投放错误的广告,以此提高用户的广告体验。若添加此权限,需要在您的用户隐私文档中声明! -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".OneActivity"
        android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
 
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    
    <!--穿山甲SDK-->
    <provider
        android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
        android:authorities="${applicationId}.TTFileProvider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths" />
    </provider>
    <!--穿山甲SDK-->
    <provider
        android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"
        android:authorities="${applicationId}.TTMultiProvider"
        android:exported="false" />
</application>

拷贝demo中的 

TTAdManagerHolder类、TToast提示类、UIUtils 屏幕适配

Android接入穿山甲SDK并实现开屏广告 接入

然后就是SplashActivity 和 application中初始化穿山甲,设置自己的APPID(应用名称id) 和 代码位ID

 

提示:TTAdManagerHolder中设置自己的APPid,在application中 APPID和SplashActivity 代码位id都填写正确、

 

代码混淆

如果您需要使用proguard混淆代码,需确保不要混淆SDK的代码。 请在proguard.cfg文件(或其他混淆文件)尾部添加如下配置:

-keep class com.bytedance.sdk.openadsdk.** {*;}
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.pgl.sys.ces.* {*;}

 

书到用时方恨少,纸上得来终觉浅!

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114960.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • include用法PHP,php之include的使用[通俗易懂]

    服务器端包含(SSI)用于创建可在多个页面重复使用的函数、页眉、页脚或元素。PHPinclude和require语句在PHP中,您能够在服务器执行PHP文件之前把该文件插入另一个PHP文件中。include和require语句用于在执行流中向其他文件插入有用的的代码。include和require很相似,除了在错误处理方面的差异:require会产生致命错误…

  • 关于数据库读写分离

    1、what读写分离读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。2、why那么为什么要读写分离呢?因为数据库的“写”(写10000条数据到oracle可能要3分钟)操作是比较耗时的。但是数据库的“读”(从oracle读…

  • Java NIO读书笔记

    Java NIO读书笔记

  • idea DataGrip 使用图解教程[通俗易懂]

    自从使用上idea以后就没有使用过eclipse开发工具,现在有迷上了DataGrip下载地址https://www.jetbrains.com/datagrip/buy/#editio

  • aic准则和bic准则_用户故事准则

    aic准则和bic准则_用户故事准则aic准则和bic准则免责声明:这篇文章摘自内部Codurance文档,该文档用于帮助我们的学徒学习我们的工作方式。我们都知道每个项目都是不同的,而且我们绝不能在任何地方应用完全相同的技术和实践。但是,以下文字不仅作为基础,而且还是我们所有人涉及用户故事时的指南。有很多关于用户故事的好书和帖子。这篇文章绝不是该领域所有良好实践的总结。用户故事是收集需求,就需要完成的事情达成共识…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号