Skip to content

Commit 806de71

Browse files
committed
see 05/15 log
1 parent 921cb9f commit 806de71

File tree

11 files changed

+318
-33
lines changed

11 files changed

+318
-33
lines changed

app/src/main/AndroidManifest.xml

+15-3
Original file line numberDiff line numberDiff line change
@@ -175,14 +175,26 @@
175175
<activity
176176
android:name=".feature.sub.location.LocationActivity"
177177
android:launchMode="singleTop" />
178-
<activity
179-
android:name=".feature.sub.pinyin.PinyinActivity"
180-
android:launchMode="singleTop" />
181178

182179
<service
183180
android:name=".feature.sub.location.LocationService"
184181
android:launchMode="singleTop" />
185182

183+
<activity
184+
android:name=".feature.sub.meta_data.MetaDataActivity"
185+
android:launchMode="singleTop">
186+
<meta-data
187+
android:name="activity_meta_data"
188+
android:value="activity" />
189+
</activity>
190+
<activity
191+
android:name=".feature.sub.pinyin.PinyinActivity"
192+
android:launchMode="singleTop" />
193+
194+
<meta-data
195+
android:name="app_meta_data"
196+
android:value="1234" />
197+
186198
</application>
187199

188200
</manifest>

app/src/main/java/com/blankj/androidutilcode/feature/core/activity/ActivityActivity.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,10 @@ public void initView(Bundle savedInstanceState, View contentView) {
9999
.appendLine("getTopActivity: " + ActivityUtils.getTopActivity())
100100
.appendLine("isActivityExistsInStack: " + ActivityUtils.isActivityExistsInStack(CoreUtilActivity.class))
101101
.append("getActivityIcon: ")
102-
.appendImage(ActivityUtils.getActivityIcon(ActivityActivity.class), SpanUtils.ALIGN_CENTER)
102+
.appendImage(ActivityUtils.getActivityIcon(this), SpanUtils.ALIGN_CENTER)
103103
.appendLine()
104104
.append("getActivityLogo: ")
105-
.appendImage(ActivityUtils.getActivityLogo(ActivityActivity.class), SpanUtils.ALIGN_CENTER)
105+
.appendImage(ActivityUtils.getActivityLogo(this), SpanUtils.ALIGN_CENTER)
106106
.create()
107107
);
108108
bitmap = ((BitmapDrawable) viewSharedElement.getDrawable()).getBitmap();

app/src/main/java/com/blankj/androidutilcode/feature/sub/SubUtilActivity.java

+5
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.blankj.androidutilcode.feature.sub.brightness.BrightnessActivity;
1212
import com.blankj.androidutilcode.feature.sub.flashlight.FlashlightActivity;
1313
import com.blankj.androidutilcode.feature.sub.location.LocationActivity;
14+
import com.blankj.androidutilcode.feature.sub.meta_data.MetaDataActivity;
1415
import com.blankj.androidutilcode.feature.sub.pinyin.PinyinActivity;
1516

1617
/**
@@ -65,6 +66,10 @@ public void locationClick(View view) {
6566
LocationActivity.start(this);
6667
}
6768

69+
public void metaDataClick(View view) {
70+
MetaDataActivity.start(this);
71+
}
72+
6873
public void pinyinClick(View view) {
6974
PinyinActivity.start(this);
7075
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.blankj.androidutilcode.feature.sub.meta_data;
2+
3+
import android.content.Context;
4+
import android.content.Intent;
5+
import android.os.Bundle;
6+
import android.support.annotation.Nullable;
7+
import android.view.View;
8+
import android.widget.TextView;
9+
10+
import com.blankj.androidutilcode.R;
11+
import com.blankj.androidutilcode.base.BaseBackActivity;
12+
import com.blankj.subutil.util.MetaDataUtils;
13+
import com.blankj.utilcode.util.SpanUtils;
14+
15+
/**
16+
* <pre>
17+
* author: Blankj
18+
* blog : http://blankj.com
19+
* time : 2018/05/15
20+
* desc :
21+
* </pre>
22+
*/
23+
public class MetaDataActivity extends BaseBackActivity {
24+
25+
public static void start(Context context) {
26+
Intent starter = new Intent(context, MetaDataActivity.class);
27+
context.startActivity(starter);
28+
}
29+
30+
@Override
31+
public void initData(@Nullable Bundle bundle) {
32+
33+
}
34+
35+
@Override
36+
public int bindLayout() {
37+
return R.layout.activity_meta_data;
38+
}
39+
40+
@Override
41+
public void initView(Bundle savedInstanceState, View contentView) {
42+
getToolBar().setTitle(getString(R.string.demo_meta_data));
43+
44+
TextView tvAboutMetaData = findViewById(R.id.tv_about_metadata);
45+
tvAboutMetaData.setText(new SpanUtils()
46+
.appendLine("getMetaDataInApp: " + MetaDataUtils.getMetaDataInApp("app_meta_data"))
47+
.append("getMetaDataInActivity: " + MetaDataUtils.getMetaDataInActivity(this, "activity_meta_data"))
48+
.create());
49+
}
50+
51+
@Override
52+
public void doBusiness() {
53+
54+
}
55+
56+
@Override
57+
public void onWidgetClick(View view) {
58+
59+
}
60+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout
3+
xmlns:android="http://schemas.android.com/apk/res/android"
4+
android:layout_width="match_parent"
5+
android:layout_height="wrap_content"
6+
android:gravity="center_horizontal"
7+
android:orientation="vertical"
8+
android:padding="@dimen/spacing_16">
9+
10+
<TextView
11+
android:id="@+id/tv_about_metadata"
12+
style="@style/TextStyle"
13+
android:layout_width="match_parent"
14+
android:layout_height="wrap_content" />
15+
16+
</LinearLayout>

app/src/main/res_sub/layout/activity_util_sub.xml

+7
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@
2828
android:onClick="locationClick"
2929
android:text="@string/demo_location" />
3030

31+
<Button
32+
style="@style/WideBtnStyle"
33+
android:layout_width="match_parent"
34+
android:layout_height="wrap_content"
35+
android:onClick="metaDataClick"
36+
android:text="@string/demo_meta_data" />
37+
3138
<Button
3239
style="@style/WideBtnStyle"
3340
android:layout_width="match_parent"

app/src/main/res_sub/values/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<string name="demo_flashlight">FlashlightUtils Demo</string>
44
<string name="demo_brightness">Brightness Demo</string>
55
<string name="demo_location">LocationUtils Demo</string>
6+
<string name="demo_meta_data">MetaData Demo</string>
67
<string name="demo_pinyin">PinyinUtils Demo</string>
78

89
<!-- Brightness 相关 -->

subutil/README-CN.md

+11
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,14 @@ isBetterLocation : 是否更好的位置
7373
isSameProvider : 是否相同的提供者
7474
```
7575

76+
* ### MetaData 相关 -> [MetaDataUtils.java][meta_data.java] -> [Demo][meta_data.demo]
77+
```
78+
getMetaDataInApp : 获取 application 的 meta-data 值
79+
getMetaDataInActivity: 获取 activity 的 meta-data 值
80+
getMetaDataInService : 获取 service 的 meta-data 值
81+
getMetaDataInReceiver: 获取 receiver 的 meta-data 值
82+
```
83+
7684
* ### 拼音相关 -> [PinyinUtils.java][pinyin.java] -> [Demo][pinyin.demo]
7785
```
7886
ccs2Pinyin : 汉字转拼音
@@ -125,6 +133,9 @@ scheduleWithFixedDelay: 延迟并以固定休息时间循环执行命令
125133
[location.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/subutil/src/main/java/com/blankj/subutil/util/LocationUtils.java
126134
[location.demo]: https://github.com/Blankj/AndroidUtilCode/blob/master/app/src/main/java/com/blankj/androidutilcode/feature/sub/location/LocationActivity.java
127135

136+
[meta_data.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/subutil/src/main/java/com/blankj/subutil/util/MetaDataUtils.java
137+
[meta_data.demo]: https://github.com/Blankj/AndroidUtilCode/blob/master/app/src/main/java/com/blankj/androidutilcode/feature/sub/meta_data/MetaDataActivity.java
138+
128139
[pinyin.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/subutil/src/main/java/com/blankj/subutil/util/PinyinUtils.java
129140
[pinyin.demo]: https://github.com/Blankj/AndroidUtilCode/blob/master/app/src/main/java/com/blankj/androidutilcode/feature/sub/pinyin/PinyinActivity.java
130141

subutil/README.md

+8
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,14 @@ isBetterLocation
7373
isSameProvider
7474
```
7575

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

0 commit comments

Comments
 (0)