博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 获取meta-data中的数据
阅读量:5907 次
发布时间:2019-06-19

本文共 3798 字,大约阅读时间需要 12 分钟。

在 Android 的 Mainfest 清单文件中,Application,Activity,Recriver,Service 的节点中都有这个的存在。很多时候我们可以通过 meta-data 来配置一些东西,例如我们可以配一个app相应的欢迎页面跳转后的主页等等。

下面直接上代码:

AndroidMainfest.xml

1 
2
4 5
11
12
13
14
15
16
17
18
19
20
21 22
23
24
25
26
27
28
29
30
31 32
MainActivity.java
1 public class MainActivity extends AppCompatActivity implements View.OnClickListener { 2  3     private TextView result; 4     private Context mContext; 5     private ComponentName cn; 6  7     @Override 8     protected void onCreate(Bundle savedInstanceState) { 9         super.onCreate(savedInstanceState);10         setContentView(R.layout.activity_main);11         mContext = this;12         cn = this.getComponentName();13         result = (TextView) findViewById(R.id.result);14         findViewById(R.id.app).setOnClickListener(this);15         findViewById(R.id.act).setOnClickListener(this);16         findViewById(R.id.rec).setOnClickListener(this);17         findViewById(R.id.ser).setOnClickListener(this);18     }19 20     @Override21     public void onClick(View v) {22         switch (v.getId()) {23             case R.id.app:24                 try {25                     ApplicationInfo appInfo = mContext.getPackageManager().getApplicationInfo(mContext.getPackageName(), PackageManager.GET_META_DATA);26                     String appMV = appInfo.metaData.getString("applicationMetadataKey");27                     result.setText(appMV);28                 } catch (PackageManager.NameNotFoundException e) {29                     e.printStackTrace();30                 }31                 break;32             case R.id.act:33                 try {34                     ActivityInfo actInfo = mContext.getPackageManager().getActivityInfo(cn, PackageManager.GET_META_DATA);35                     String actMV = actInfo.metaData.getString("activityMetadataKey");36                     result.setText(actMV);37                 } catch (PackageManager.NameNotFoundException e) {38                     e.printStackTrace();39                 }40 41                 break;42             case R.id.rec:43                 ComponentName recCn = new ComponentName(mContext, MainReceiver.class);44                 try {45                     ActivityInfo recInfo = mContext.getPackageManager().getReceiverInfo(recCn, PackageManager.GET_META_DATA);46                     String recMV = recInfo.metaData.getString("receiverMetadataKey");47                     result.setText(recMV);48                 } catch (PackageManager.NameNotFoundException e) {49                     e.printStackTrace();50                 }51                 break;52             case R.id.ser:53                 ComponentName serCn = new ComponentName(mContext, MainService.class);54                 try {55                     ServiceInfo serInfo = mContext.getPackageManager().getServiceInfo(serCn, PackageManager.GET_META_DATA);56                     String serMV = serInfo.metaData.getString("serviceMetadataKey");57                     result.setText(serMV);58                 } catch (PackageManager.NameNotFoundException e) {59                     e.printStackTrace();60                 }61                 break;62         }63     }64 }

至于MainActivity对应的布局文件,还有一个Service和一个Receiver的代码就不贴了,也没啥意义,都是空的,布局文件里面就一个Textview来展示结果,和4个按钮,没了。各自YY吧。

 

代码也就在这里了,其实换汤不换药,只是稍微有点区别罢了,仔细看看就懂了。

 

2017-1-5 16:39

转载于:https://www.cnblogs.com/fwling/p/6252958.html

你可能感兴趣的文章
temp
查看>>
mongodb06---索引
查看>>
获取请求真实ip
查看>>
理解Express express.static 和 __direname 及 __firename的含义
查看>>
[转]wcout输出中文却不显示出来
查看>>
微信小程序 - 单个题目
查看>>
大数据开发实战:MapReduce内部原理实践
查看>>
宽带路由器编年史之路由器的前世
查看>>
操作Cookie公用代码
查看>>
Eclipse开发JQuery环境设置(Spket)
查看>>
javascript setAttribute使用方法 --查缺补漏
查看>>
类别标记用于机电管线标注
查看>>
ffmpeg使用转码学习
查看>>
使用Cordova编译Android平台程序提示:Could not reserve enough space for 2097152KB object heap...
查看>>
JAVA数据结构--插入排序
查看>>
转载:通过struts2拦截器实现权限管理
查看>>
如何成为一名优秀的前端工程师 (share)
查看>>
工人想要什么 ?
查看>>
【数据分析】6 点发的文章在博客园阅读量最高?
查看>>
调用相册怎么设置剪裁-b
查看>>