Android怎么获取清单文件中的元数据

  介绍

这篇文章主要介绍了Android怎么获取清单文件中的元数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

Android是什么

Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国谷歌公司和开放手机联盟领导及开发。

<强> 1.元数据是什么?如何获取元数据吗?

在AndroidManifest。xml中,元素可以作为子元素,被包在活动、应用、服务,或者接收机元素中,不同的父元素,在应用时读取的方法也不同。

在活动中:

ActivityInfo  info =,空;   ,,,try  {   ,,,,,info =, this.getPackageManager () .getActivityInfo (getComponentName (),, PackageManager.GET_META_DATA);   ,,,},catch  (PackageManager.NameNotFoundException  e), {   ,,,,,e.printStackTrace ();   ,,,}   ,,,info.metaData.getString (“meta_name");

在应用中:

ApplicationInfo  appInfo =,空;   ,,,try  {   ,,,,,appInfo =, this.getPackageManager () .getApplicationInfo (getPackageName (),, PackageManager.GET_META_DATA);   ,,,},catch  (PackageManager.NameNotFoundException  e), {   ,,,,,e.printStackTrace ();   ,,,}   ,,,appInfo.metaData.getString (“meta_name");

在服务中:

ComponentName  cn =, new  ComponentName (,, XXXXService.class);   ,,,ServiceInfo  info =,空;   ,,,try  {   ,,,,,info =, this.getPackageManager () .getServiceInfo (cn, PackageManager.GET_META_DATA);   ,,,},catch  (PackageManager.NameNotFoundException  e), {   ,,,,,e.printStackTrace ();   ,,,}   ,,,info.metaData.getString (“meta_name");

在接收机中:

ComponentName  cn =, new  ComponentName (getApplicationContext (),, XXXXXReceiver.class);   ,,,ActivityInfo  info =,空;   ,,,try  {   ,,,,,info =, getApplicationContext () .getPackageManager () .getReceiverInfo (cn, PackageManager.GET_META_DATA);   ,,,},catch  (PackageManager.NameNotFoundException  e), {   ,,,,,e.printStackTrace ();   ,,,}   ,,,info.metaData.getString (“meta_name");

<强> 2。遇到的问题:获取到值为null

之前在应用程序中获取一直键值,但是一直获取到的都是null,后来人大神说:读取字符串的数值要用info.metaData.getInt,尝试了一下,弯的佛,成功拿到,如果是数值类型的,获取值的时候,可以采用:

info.metaData.getInt (“meta_name"));

替代

info.metaData.getString (“meta_name");

<强>补充知识: <强> android webview拦截替换本地资源,提升加载性能,节省流量

现在许多游戏都是直接提供一个访问地址,然后由webview去访问加载,加载速度的快慢取决于网速,当然也耗流量,这个时候,为了提高产品竞争力,产品经理就会提出需求了,网前端的同学也就会把资源给到android前端,接下来就是要做的处理了,代码不多,用作记录:

package  com.dxgame.demo;      import  android.net.Uri;   import  android.os.Build;   import  android.os.Bundle;   import  android.support.annotation.RequiresApi;   import  android.support.v7.app.AppCompatActivity;   import  android.text.TextUtils;   import  android.util.Log;   import  android.webkit.MimeTypeMap;   import  android.webkit.WebResourceRequest;   import  android.webkit.WebResourceResponse;   import  android.webkit.WebView;   import  android.webkit.WebViewClient;      import  java.io.InputStream;   import  java.util.HashMap;      public  class  CheckLocal  extends  AppCompatActivity  {      private 才能;WebView  webView;      @Override才能   protected 才能;void  onCreate (Bundle  savedInstanceState), {   ,,,super.onCreate (savedInstanceState);   ,,,setContentView (R.layout.check_local);   ,,,webView.setWebViewClient (webViewClient);   ,,}//WebViewClient才能主要帮助WebView处理各种通知,请求事件   private 才能WebViewClient  WebViewClient =, new  WebViewClient (), {      ,,,@RequiresApi (=api  Build.VERSION_CODES.LOLLIPOP)   ,,,public  WebResourceResponse  shouldInterceptRequest (WebView 看来,,WebResourceRequest 请求),{   ,,,,,Uri  Uri =, request.getUrl ();   ,,,,,WebResourceResponse  response =, checkLocalWebResourceResponse (uri);   ,,,,,if  (response  !=, null), {   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Android怎么获取清单文件中的元数据