游戏中接入第三方渠道时 关于meta-data的一些小问题
来源:互联网 发布:mmd恋爱循环数据 编辑:程序博客网 时间:2024/04/30 20:03
1. androidMainifest 中的 ${YourAppX-PromotionKey} 的意思
<meta-data
android:name="sandboxConsumerSecret"android:value="${YourAppX-PromotionKey}" >
</meta-data>
需要去添加的,一般内容是sdk方给的一个数据
2. gameId 是可以写死的么
<meta-data
android:name="gameId"
android:value="23000013">
</meta-data>
gameid 是 androidmainifest 的 包名
3. sdk 集成 xpromotion ?的意思是?
总结:知识点
androidMainiFest.xml 中 meta-data:
转自:http://blog.csdn.net/wwj_748/article/details/25079991
- <!-- appid -->
- <meta-data
- android:name="APP_ID"
- android:value="037810BCE1D2260F32017643AC7D980C" />
- <!-- 发布渠道(可选) -->
- <meta-data
- android:name="APP_CHANNEL"
- android:value="QQ_CENTER" />
<activity>
<activity-alias>
<application>
<provider>
<receiver>
这个也是转:
在AndroidManifest.xml中,<meta-data>元素可以作为子元素,被包含在<activity>、<application> 、<service>和<receiver>元素中,但不同的父元素,在应用时读取的方法也不同。
1 :在Activity的应用。
2:在application的应用。
3:在service的应用。
4: 在receiver的应用。
概念
meta-data就像其名一样,主要用来定义一些组件相关的配置值。
按照官方定义,metadata是一组供父组件使用的名值对(name-value pair),因此相应的meta-data元素应该定义在相应的组件中。即如果想在activity中使用metadata,那么meta-data必须定义在AndroidManifest.xml的activity声明中。
使用
所有的名值对被包装成Bundle供组件使用,因此使用方式同Bundle。metadata普通值由value属性给出,资源ID由resource属性给出。
比如我们定义资源
<
string
name
=
"x_key"
>resource key</
string
>
//R
public static final int ic_launcher=0x7f020000;
<
meta-data
android:name
=
"com.xesam.key_1"
android:value
=
"x_key"
/>
<
meta-data
android:name
=
"com.xesam.key_2"
android:value
=
"@string/x_key"
/>
<
meta-data
android:name
=
"com.xesam.img"
android:resource
=
"@drawable/ic_launcher"
/>
那么有:
metadata.getString("com.xesam.key_1") ==> "x_key"
metadata.getString("com.xesam.key_2") ==> "resource key"
metadata.getInt("com.xesam.img") ==> 0x7f020000
比如要定义一副图片,则可以用这个,然后在代码中用getInt()取出图片的ID:
int
imageId = meta.getInt(
"com.xesam.img"
);
((ImageView) findViewById(R.id.img)).setImageResource(imageId);
使用问题
形如:
<
meta-data
android:name
=
"com.xesam.key_1"
android:value
=
"000"
/>
return
(String) o;
的代码获取一个StringValue值的,但是在将metadata包装成bundle的时候,"000"被解析成整数0,
因此bundle.getString("com.xesam.key_1")返回的是(String)0,显然,java是不允许这样的,因此最后得到的是null。 话说android为什么不是用String.valueOf()或者obj.toString()呢?
为了避免这种情况:
1,可以在形如000的字符串前面放个\0空字符,强迫android按照字符串解析000。
2,在资源文件中指定需要的值,然后在metadata的value中引用此值。
示例代码
附:
//在Activity应用<meta-data>元素。
ActivityInfo info =
this
.getPackageManager()
.getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);
info.metaData.getString(
"meta_name"
);
//在application应用<meta-data>元素。
ApplicationInfo appInfo =
this
.getPackageManager()
.getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
appInfo.metaData.getString(
"meta_name"
);
//在service应用<meta-data>元素。
ComponentName cn =
new
ComponentName(
this
, MetaDataService.
class
);
ServiceInfo info =
this
.getPackageManager().getServiceInfo(cn, PackageManager.GET_META_DATA);
info.metaData.getString(
"meta_name"
);
//在receiver应用<meta-data>元素。
ComponentName cn =
new
ComponentName(context, MetaDataReceiver.
class
);
ActivityInfo info = context.getPackageManager().getReceiverInfo(cn, PackageManager.GET_META_DATA);
info.metaData.getString(
"meta_name"
);
- 游戏中接入第三方渠道时 关于meta-data的一些小问题
- Android项目中接入微信第三方支付及一些问题
- 手机游戏通用的渠道接入模式
- 关于支付宝第三方应用接入的API文档
- Android中facebook与google的第三方接入
- 关于在xcode中添加第三方文件夹的问题
- 关于wifi:接入数量大时的一些问题
- 关于wifi:接入数量大时的一些问题
- 关于IOS接入gooleAdmob的一些问题
- Android Ant 自动打包带第三方库遇到的一些小问题
- ant 打批量渠道包,第三方项目作为library打包出错的问题
- 关于第三方登录的问题
- 关于第三方so包的问题
- 前后端联调接入第三方接口之302游戏大作战的故事
- iOS小问题——关于使用IQKeyBoardManager第三方的坑
- android接入第三方apk的解决方法
- 记录自己的第三方接入
- FaceBook第三方登录的接入封装
- Java学习博客
- 金融信息交换协议(FIX)v5.0读书笔记(2)
- AndroidStuido 取消SVN关联
- C++获取windows系统时间的七种方式
- Android设计模式源码解析之Builder模式
- 游戏中接入第三方渠道时 关于meta-data的一些小问题
- VOIP开源资源记录
- CocoaPods的安装与使用说明
- HTML5视频播放器VideoJS使用附【源码及示例】- 兼容IE
- vs2013快捷键大全
- ceshi
- 关于androidpn消息推送客户端锁屏状态,无法发送心跳包解决方案
- spark实践——处理表
- Linux系统基础命令(转)