Skip to content

Commit 3c57fc8

Browse files
committed
add market entrance
1 parent a738b5c commit 3c57fc8

File tree

4 files changed

+142
-10
lines changed

4 files changed

+142
-10
lines changed

app/src/main/java/com/brian/csdnblog/activity/SettingActivity.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import com.brian.csdnblog.manager.ShareManager;
1616
import com.brian.csdnblog.manager.UsageStatsManager;
1717
import com.brian.csdnblog.datacenter.preference.SettingPreference;
18+
import com.brian.csdnblog.util.MarketUtils;
1819
import com.umeng.analytics.MobclickAgent;
1920

2021
import butterknife.BindView;
@@ -30,6 +31,7 @@ public class SettingActivity extends BaseActivity {
3031
@BindView(R.id.switch_vertical_text) TextView mSwitchVerticalText;
3132
@BindView(R.id.switch_picinfwifi_text) TextView mSwitchPicWifiText;
3233
@BindView(R.id.switch_staybg_text) TextView mSwitchStayBgText;
34+
@BindView(R.id.market) TextView mMarketText;
3335

3436
public static void startActivity(Activity activity) {
3537
Intent intent = new Intent();
@@ -125,6 +127,13 @@ public void onClick(View v) {
125127
SettingPreference.getInstance().setRunInBackEnable(selected);
126128
}
127129
});
130+
131+
mMarketText.setOnClickListener(new OnClickListener() {
132+
@Override
133+
public void onClick(View v) {
134+
MarketUtils.launchAppDetail(getPackageName(), "");
135+
}
136+
});
128137
}
129138

130139
private void showAdConfirmDialog() {
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
package com.brian.csdnblog.util;
2+
3+
import android.content.Context;
4+
import android.content.Intent;
5+
import android.content.pm.ActivityInfo;
6+
import android.content.pm.PackageInfo;
7+
import android.content.pm.PackageManager;
8+
import android.content.pm.ResolveInfo;
9+
import android.net.Uri;
10+
import android.text.TextUtils;
11+
12+
import com.brian.csdnblog.Env;
13+
14+
import java.util.ArrayList;
15+
import java.util.List;
16+
17+
/**
18+
* Created by huamm on 2016/9/18 0018.
19+
*/
20+
public class MarketUtils {
21+
/**
22+
* 获取已安装应用商店的包名列表
23+
*/
24+
public static ArrayList<String> queryInstalledMarketPkgs(Context context) {
25+
ArrayList<String> pkgs = new ArrayList<>();
26+
if (context == null) {
27+
return pkgs;
28+
}
29+
Intent intent = new Intent();
30+
intent.setAction("android.intent.action.MAIN");
31+
intent.addCategory("android.intent.category.APP_MARKET");
32+
PackageManager pm = context.getPackageManager();
33+
List<ResolveInfo> infos = pm.queryIntentActivities(intent, 0);
34+
if (infos == null || infos.size() == 0) {
35+
return pkgs;
36+
}
37+
int size = infos.size();
38+
for (int i = 0; i < size; i++) {
39+
String pkgName = "";
40+
try {
41+
ActivityInfo activityInfo = infos.get(i).activityInfo;
42+
pkgName = activityInfo.packageName;
43+
} catch (Exception e) {
44+
e.printStackTrace();
45+
}
46+
if (!TextUtils.isEmpty(pkgName)) {
47+
pkgs.add(pkgName);
48+
}
49+
}
50+
return pkgs;
51+
}
52+
53+
/**
54+
* 过滤出已经安装的包名集合
55+
*
56+
* @param pkgs 待过滤包名集合
57+
* @return 已安装的包名集合
58+
*/
59+
public static ArrayList<String> filterInstalledPkgs(Context context, ArrayList<String> pkgs) {
60+
ArrayList<String> empty = new ArrayList<>();
61+
if (context == null || pkgs == null || pkgs.size() == 0) {
62+
return empty;
63+
}
64+
PackageManager pm = context.getPackageManager();
65+
List<PackageInfo> installedPkgs = pm.getInstalledPackages(0);
66+
int li = installedPkgs.size();
67+
int lj = pkgs.size();
68+
for (int j = 0; j < lj; j++) {
69+
for (int i = 0; i < li; i++) {
70+
String installPkg = "";
71+
String checkPkg = pkgs.get(j);
72+
try {
73+
installPkg = installedPkgs.get(i).applicationInfo.packageName;
74+
} catch (Exception e) {
75+
e.printStackTrace();
76+
}
77+
if (TextUtils.isEmpty(installPkg))
78+
continue;
79+
if (installPkg.equals(checkPkg)) {
80+
empty.add(installPkg);
81+
break;
82+
}
83+
}
84+
}
85+
return empty;
86+
}
87+
88+
/**
89+
* 启动到app详情界面
90+
*
91+
* @param appPkg App的包名
92+
* @param marketPkg 应用商店包名 ,如果为"",则由系统弹出应用商店列表供用户选择,否则调转到目标市场的应用详情界面,某些应用商店可能会失败
93+
*/
94+
public static void launchAppDetail(String appPkg, String marketPkg) {
95+
try {
96+
if (TextUtils.isEmpty(appPkg)) {
97+
return;
98+
}
99+
Uri uri = Uri.parse("market://details?id=" + appPkg);
100+
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
101+
if (!TextUtils.isEmpty(marketPkg)) {
102+
intent.setPackage(marketPkg);
103+
}
104+
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
105+
Env.getContext().startActivity(intent);
106+
} catch (Exception e) {
107+
e.printStackTrace();
108+
}
109+
}
110+
}

app/src/main/res/drawable/com_item_bg_selector.xml

Lines changed: 0 additions & 6 deletions
This file was deleted.

app/src/main/res/layout/activity_setting.xml

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
android:id="@+id/switch_show_ad_text"
1414
android:layout_width="match_parent"
1515
android:layout_height="48dp"
16-
android:background="@drawable/com_item_bg_selector"
16+
android:background="?android:attr/selectableItemBackground"
1717
android:drawablePadding="8dp"
1818
android:drawableRight="@drawable/setting_switch_selector"
1919
android:gravity="center_vertical"
@@ -33,7 +33,7 @@
3333
android:id="@+id/switch_vertical_text"
3434
android:layout_width="match_parent"
3535
android:layout_height="48dp"
36-
android:background="@drawable/com_item_bg_selector"
36+
android:background="?android:attr/selectableItemBackground"
3737
android:drawablePadding="8dp"
3838
android:drawableRight="@drawable/setting_switch_selector"
3939
android:gravity="center_vertical"
@@ -53,7 +53,7 @@
5353
android:id="@+id/switch_picinfwifi_text"
5454
android:layout_width="match_parent"
5555
android:layout_height="48dp"
56-
android:background="@drawable/com_item_bg_selector"
56+
android:background="?android:attr/selectableItemBackground"
5757
android:drawablePadding="8dp"
5858
android:drawableRight="@drawable/setting_switch_selector"
5959
android:gravity="center_vertical"
@@ -73,7 +73,7 @@
7373
android:id="@+id/switch_staybg_text"
7474
android:layout_width="match_parent"
7575
android:layout_height="48dp"
76-
android:background="@drawable/com_item_bg_selector"
76+
android:background="?android:attr/selectableItemBackground"
7777
android:drawablePadding="8dp"
7878
android:drawableRight="@drawable/setting_switch_selector"
7979
android:gravity="center_vertical"
@@ -89,4 +89,23 @@
8989
android:layout_marginLeft="20dp"
9090
android:background="@color/com_divider_gray_0" />
9191

92+
<TextView
93+
android:id="@+id/market"
94+
android:layout_width="match_parent"
95+
android:layout_height="48dp"
96+
android:text="去应用市场评分"
97+
android:drawableRight="@drawable/app_recommend_arrow"
98+
android:background="?android:attr/selectableItemBackground"
99+
android:gravity="center_vertical"
100+
android:paddingLeft="16dp"
101+
android:paddingRight="20dp"
102+
android:textColor="@color/com_text_tx1"
103+
android:textSize="@dimen/com_text_size_content"/>
104+
105+
<ImageView
106+
android:layout_width="match_parent"
107+
android:layout_height="1px"
108+
android:layout_marginLeft="20dp"
109+
android:background="@color/com_divider_gray_0" />
110+
92111
</LinearLayout>

0 commit comments

Comments
 (0)