-
-
Notifications
You must be signed in to change notification settings - Fork 10.7k
/
MetaDataUtils.java
144 lines (134 loc) · 5.06 KB
/
MetaDataUtils.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package com.blankj.utilcode.util;
import android.app.Activity;
import android.app.Service;
import android.content.BroadcastReceiver;
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 androidx.annotation.NonNull;
/**
* <pre>
* author: Blankj
* blog : http://blankj.com
* time : 2018/05/15
* desc : utils about meta-data
* </pre>
*/
public final class MetaDataUtils {
private MetaDataUtils() {
throw new UnsupportedOperationException("u can't instantiate me...");
}
/**
* Return the value of meta-data in application.
*
* @param key The key of meta-data.
* @return the value of meta-data in application
*/
public static String getMetaDataInApp(@NonNull final String key) {
String value = "";
PackageManager pm = Utils.getApp().getPackageManager();
String packageName = Utils.getApp().getPackageName();
try {
ApplicationInfo ai = pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA);
value = String.valueOf(ai.metaData.get(key));
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return value;
}
/**
* Return the value of meta-data in activity.
*
* @param activity The activity.
* @param key The key of meta-data.
* @return the value of meta-data in activity
*/
public static String getMetaDataInActivity(@NonNull final Activity activity,
@NonNull final String key) {
return getMetaDataInActivity(activity.getClass(), key);
}
/**
* Return the value of meta-data in activity.
*
* @param clz The activity class.
* @param key The key of meta-data.
* @return the value of meta-data in activity
*/
public static String getMetaDataInActivity(@NonNull final Class<? extends Activity> clz,
@NonNull final String key) {
String value = "";
PackageManager pm = Utils.getApp().getPackageManager();
ComponentName componentName = new ComponentName(Utils.getApp(), clz);
try {
ActivityInfo ai = pm.getActivityInfo(componentName, PackageManager.GET_META_DATA);
value = String.valueOf(ai.metaData.get(key));
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return value;
}
/**
* Return the value of meta-data in service.
*
* @param service The service.
* @param key The key of meta-data.
* @return the value of meta-data in service
*/
public static String getMetaDataInService(@NonNull final Service service,
@NonNull final String key) {
return getMetaDataInService(service.getClass(), key);
}
/**
* Return the value of meta-data in service.
*
* @param clz The service class.
* @param key The key of meta-data.
* @return the value of meta-data in service
*/
public static String getMetaDataInService(@NonNull final Class<? extends Service> clz,
@NonNull final String key) {
String value = "";
PackageManager pm = Utils.getApp().getPackageManager();
ComponentName componentName = new ComponentName(Utils.getApp(), clz);
try {
ServiceInfo info = pm.getServiceInfo(componentName, PackageManager.GET_META_DATA);
value = String.valueOf(info.metaData.get(key));
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return value;
}
/**
* Return the value of meta-data in receiver.
*
* @param receiver The receiver.
* @param key The key of meta-data.
* @return the value of meta-data in receiver
*/
public static String getMetaDataInReceiver(@NonNull final BroadcastReceiver receiver,
@NonNull final String key) {
return getMetaDataInReceiver(receiver.getClass(), key);
}
/**
* Return the value of meta-data in receiver.
*
* @param clz The receiver class.
* @param key The key of meta-data.
* @return the value of meta-data in receiver
*/
public static String getMetaDataInReceiver(@NonNull final Class<? extends BroadcastReceiver> clz,
@NonNull final String key) {
String value = "";
PackageManager pm = Utils.getApp().getPackageManager();
ComponentName componentName = new ComponentName(Utils.getApp(), clz);
try {
ActivityInfo info = pm.getReceiverInfo(componentName, PackageManager.GET_META_DATA);
value = String.valueOf(info.metaData.get(key));
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return value;
}
}