Android之meta-data
来源:互联网 发布:金融分销系统源码 编辑:程序博客网 时间:2024/05/05 18:47
本文主要记录一些零碎的东西
使用过半收费的SDK的都会涉及到key,比如使用百度地图等,都会让你申请密钥,然后写在manifest文件里。一直没有思考,都是直接使用,今天看了一下meta-data,googleAPI:https://developer.android.com/reference/android/media/MediaMetadata.html
meta-data,主要用来定义一些组件相关的配置值,想在activity中使用metadata,那么meta-data必须定义在AndroidManifest.xml的activity声明中
里面包含三个属性,name,value和resource,一般的值可以通过value属性来指定,但是如果要指定一个资源的id,则需要使用resource属性来配置,可以获取到id,然后可以根据id再进行取值,下面来看一下测试
manifest文件
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.cl.slack.metedata" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="meta_name" android:value="I from application" /> <activity android:name="com.cl.slack.metedata.MainActivity" android:label="@string/app_name" > <meta-data android:name="meta_name" android:value="I from activity" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".MetaDataService" > <!-- <meta-data android:name="meta_name" android:value="@string/serivce" /> --> <meta-data android:name="meta_name" android:resource="@string/serivce" /> </service> <receiver android:name=".MetaDataReceiver" > <meta-data android:name="meta_name" android:value="I from receiver" /> </receiver> </application></manifest>MainiActivity文件
import android.os.Bundle;import android.app.Activity;import android.content.ComponentName;import android.content.pm.ActivityInfo;import android.content.pm.ApplicationInfo;import android.content.pm.PackageManager;import android.content.pm.ServiceInfo;import android.util.Log;import android.view.Menu;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);try {//在Activity应用<meta-data>元素。 ActivityInfo info = this.getPackageManager() .getActivityInfo(getComponentName(),PackageManager.GET_META_DATA); Log.i("slack", info.metaData.getString("meta_name")); //在application应用<meta-data>元素。 ApplicationInfo appInfo = this.getPackageManager() .getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA); Log.i("slack", appInfo.metaData.getString("meta_name")); //在service应用<meta-data>元素。 ComponentName cn = new ComponentName(this, MetaDataService.class); ServiceInfo serviceInfo = this.getPackageManager().getServiceInfo(cn, PackageManager.GET_META_DATA);// Log.i("slack",serviceInfo.metaData.getString("meta_name")); // 获取到的是 @string/serivce 对应的资源id值 Log.i("slack","id:"+serviceInfo.metaData.getInt("meta_name")); Log.i("slack","value:"+getString(serviceInfo.metaData.getInt("meta_name"))); //在receiver应用<meta-data>元素。 ComponentName cn2 = new ComponentName(this, MetaDataReceiver.class); ActivityInfo receiverInfo = this.getPackageManager().getReceiverInfo(cn2, PackageManager.GET_META_DATA); Log.i("slack",receiverInfo.metaData.getString("meta_name")); } catch (Exception e) {Log.i("slack",e.toString());}}}
res下的values下的string.xml文件里新增一个,添加后结果
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">MeteData</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="serivce">I from serivce</string></resources>还需要新建一个service和receiver,里面什么都不用写,测试嘛
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class MetaDataReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stub}}import android.app.Service;import android.content.Intent;import android.os.IBinder;public class MetaDataService extends Service {@Overridepublic IBinder onBind(Intent arg0) {// TODO Auto-generated method stubreturn null;}}结果就日志输出了,看一下
0 0
- Android之meta-data
- Android之meta-data使用
- Android之meta-data理解
- android meta-data
- Android <meta-data>
- Android <meta-data>
- android meta-data
- Android <meta-data>
- Android <meta-data>
- Android <meta-data>
- android meta-data详解
- Android获取meta-data
- android meta-data 使用
- Android:meta-data
- android meta-data 使用
- android meta-data作用
- Android meta-data
- android meta-data
- LINUX 对引导加密
- 3种JSON的用法
- PAT 1015 Reversible Primes
- JavaScript执行上下文
- centos6.5 下安装gcc4.8.2
- Android之meta-data
- 机器学习 -- 简单线性拟合实例
- 使用ViewFlipper实现图片的轮播
- idea创建maven聚合项目
- iOS中修改UIWebView的UserAgent
- 双线程读取两路摄像头数据
- ApacheDS 2.0__Basic User Guide 1.4.5 - Enable and disable anonymous access (基础用户指导手册)
- hadoop部署注意点
- 为什么在主线程的Looper.looper死循环不会卡死