Commit a2789f299a757a7fceb6de2d7a40228f42e7d709

Authored by 朱显松
2 parents bb6c2dad 37a8ffe7

Merge branch 'master' of bj.gitlab.cnlive.com:cnlive-team/VLionSimple

app/libs/vlionSdk1.0.jar
No preview for this file type
app/src/main/AndroidManifest.xml
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 </intent-filter> 26 </intent-filter>
27 </activity> 27 </activity>
28 28
29 - <receiver android:name="cn.vlion.ad.utils.apkdownload.DownloadCompleteReceiver"> 29 + <receiver android:name="cn.vlion.ad.core.VLionReceiver">
30 <intent-filter> 30 <intent-filter>
31 <action android:name="android.intent.action.DOWNLOAD_COMPLETE" /> 31 <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
32 </intent-filter> 32 </intent-filter>
@@ -36,6 +36,16 @@ @@ -36,6 +36,16 @@
36 </intent-filter> 36 </intent-filter>
37 </receiver> 37 </receiver>
38 38
  39 + <provider
  40 + android:name="android.support.v4.content.FileProvider"
  41 + android:authorities="cn.vlion.ad.fileprovider"
  42 + android:exported="false"
  43 + android:grantUriPermissions="true">
  44 + <meta-data
  45 + android:name="android.support.FILE_PROVIDER_PATHS"
  46 + android:resource="@xml/file_provider" />
  47 + </provider>
  48 +
39 <activity 49 <activity
40 android:name="cn.vlion.simple.BannerActivity" 50 android:name="cn.vlion.simple.BannerActivity"
41 android:configChanges="keyboardHidden|screenSize|orientation" 51 android:configChanges="keyboardHidden|screenSize|orientation"
app/src/main/java/cn/vlion/simple/BannerActivity.java
@@ -2,12 +2,15 @@ package cn.vlion.simple; @@ -2,12 +2,15 @@ package cn.vlion.simple;
2 2
3 import android.os.Bundle; 3 import android.os.Bundle;
4 import android.support.v7.app.AppCompatActivity; 4 import android.support.v7.app.AppCompatActivity;
  5 +import android.util.Log;
  6 +import android.view.ViewGroup;
5 import android.widget.RelativeLayout; 7 import android.widget.RelativeLayout;
6 8
7 import cn.vlion.ad.core.Config; 9 import cn.vlion.ad.core.Config;
8 import cn.vlion.ad.moudle.banner.BannerManager; 10 import cn.vlion.ad.moudle.banner.BannerManager;
9 import cn.vlion.ad.moudle.banner.BannerView; 11 import cn.vlion.ad.moudle.banner.BannerView;
10 import cn.vlion.ad.moudle.banner.BannerViewListener; 12 import cn.vlion.ad.moudle.banner.BannerViewListener;
  13 +import cn.vlion.simple.util.ScreenUtil;
11 14
12 public class BannerActivity extends AppCompatActivity { 15 public class BannerActivity extends AppCompatActivity {
13 16
@@ -23,44 +26,46 @@ public class BannerActivity extends AppCompatActivity { @@ -23,44 +26,46 @@ public class BannerActivity extends AppCompatActivity {
23 bannerContainer = (RelativeLayout) findViewById(R.id.bannerContainer); 26 bannerContainer = (RelativeLayout) findViewById(R.id.bannerContainer);
24 27
25 BannerManager.getInstance().setAdScalingModel(Config.AD_SCALING_MODE_SCALE_TO_FIT); 28 BannerManager.getInstance().setAdScalingModel(Config.AD_SCALING_MODE_SCALE_TO_FIT);
26 -  
27 - bannerView = BannerManager.getInstance().getBannerView(this, "350", new BannerViewListener() {  
28 - 29 + //430 h5
  30 + //431 image
  31 + bannerView = BannerManager.getInstance().getBannerView(this, "430", new BannerViewListener() {
29 @Override 32 @Override
30 - public void onRequestFailed(int i, String s) {  
31 - 33 + public void onRequestSuccess(int viewWidth, int viewHeight) {
  34 + Log.e(TAG, "onRequestSuccess: " + viewWidth + "," + viewHeight);
  35 + bannerContainer.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
  36 + bannerContainer.getLayoutParams().height = ScreenUtil.getScreenWidth(BannerActivity.this) * viewHeight / viewWidth;
32 } 37 }
33 38
34 @Override 39 @Override
35 - public void onRequestSuccess(int i, int i1) {  
36 - 40 + public void onRequestFailed(int code, String errorMsg) {
  41 + Log.e(TAG, "onRequestFailed" + code + " : " + errorMsg);
37 } 42 }
38 43
39 @Override 44 @Override
40 public void onShowSuccess() { 45 public void onShowSuccess() {
41 - 46 + Log.e(TAG, "onShowSuccess");
42 } 47 }
43 48
44 @Override 49 @Override
45 public void onSwitchBanner() { 50 public void onSwitchBanner() {
46 - 51 + Log.e(TAG, "onSwitchBanner");
47 } 52 }
48 53
49 @Override 54 @Override
50 - public void onShowFailed(int i, String s) {  
51 - 55 + public void onShowFailed(int code, String msg) {
  56 + Log.e(TAG, "onShowFailed: " + code + "," + msg);
52 } 57 }
53 58
54 @Override 59 @Override
55 public void onBannerClicked() { 60 public void onBannerClicked() {
56 - 61 + Log.e(TAG, "onBannerClicked");
57 } 62 }
58 }); 63 });
59 64
60 -// bannerView.setLayoutParams(new RelativeLayout.LayoutParams(300, 300));  
61 bannerContainer.addView(bannerView); 65 bannerContainer.addView(bannerView);
62 } 66 }
63 67
  68 +
64 @Override 69 @Override
65 protected void onPause() { 70 protected void onPause() {
66 super.onPause(); 71 super.onPause();
app/src/main/java/cn/vlion/simple/SplashActivity.java
@@ -72,7 +72,9 @@ public class SplashActivity extends AppCompatActivity { @@ -72,7 +72,9 @@ public class SplashActivity extends AppCompatActivity {
72 SplashManager.getInstance().setAutoJumpToTargetWhenShowFailed(true); 72 SplashManager.getInstance().setAutoJumpToTargetWhenShowFailed(true);
73 SplashManager.getInstance().setSplashViewContainer(splashAdContainer); 73 SplashManager.getInstance().setSplashViewContainer(splashAdContainer);
74 SplashManager.getInstance().setAdScalingModel(Config.AD_SCALING_MODE_SCALE_TO_FIT); 74 SplashManager.getInstance().setAdScalingModel(Config.AD_SCALING_MODE_SCALE_TO_FIT);
75 - SplashManager.getInstance().showSplash(this, "353", new SplashViewListener() { 75 + //432 h5
  76 + //433 image
  77 + SplashManager.getInstance().showSplash(this, "432", new SplashViewListener() {
76 78
77 @Override 79 @Override
78 public void onRequestSuccess(int viewWidth, int viewHeight) { 80 public void onRequestSuccess(int viewWidth, int viewHeight) {
app/src/main/java/cn/vlion/simple/SpotActivity.java
@@ -36,15 +36,16 @@ public class SpotActivity extends AppCompatActivity { @@ -36,15 +36,16 @@ public class SpotActivity extends AppCompatActivity {
36 adLayout = (RelativeLayout) findViewById(R.id.adLayout); 36 adLayout = (RelativeLayout) findViewById(R.id.adLayout);
37 37
38 SpotManager.getInstance().setSpotViewContainer(spotAdContainer); 38 SpotManager.getInstance().setSpotViewContainer(spotAdContainer);
39 -// SpotManager.getInstance().setSplashViewContainerAndLayoutParams(splashContainer, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 600));  
40 SpotManager.getInstance().setAdScalingModel(Config.AD_SCALING_MODE_SCALE_TO_FIT); 39 SpotManager.getInstance().setAdScalingModel(Config.AD_SCALING_MODE_SCALE_TO_FIT);
41 - SpotManager.getInstance().showSpot(this, "355",new SpotViewListener() { 40 + //434 h5
  41 + //438 image
  42 + SpotManager.getInstance().showSpot(this, "438", new SpotViewListener() {
42 43
43 @Override 44 @Override
44 public void onRequestSuccess(int viewWidth, int viewHeight, int closeViewHeight) { 45 public void onRequestSuccess(int viewWidth, int viewHeight, int closeViewHeight) {
45 Log.e(TAG, "onRequestSuccess: " + viewWidth + "," + viewHeight); 46 Log.e(TAG, "onRequestSuccess: " + viewWidth + "," + viewHeight);
46 - spotAdContainer.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;  
47 - spotAdContainer.getLayoutParams().height = ScreenUtil.getScreenWidth(SpotActivity.this) * viewHeight / viewWidth + closeViewHeight; 47 + spotAdContainer.getLayoutParams().width = 300;
  48 + spotAdContainer.getLayoutParams().height = 300 * viewHeight / viewWidth + closeViewHeight;
48 } 49 }
49 50
50 @Override 51 @Override
app/src/main/java/cn/vlion/simple/util/PermissionHelper.java
@@ -13,46 +13,25 @@ import android.support.v4.content.ContextCompat; @@ -13,46 +13,25 @@ import android.support.v4.content.ContextCompat;
13 import android.util.Log; 13 import android.util.Log;
14 14
15 /** 15 /**
16 - * Android 6.0 上权限分为<b>正常</b>和<b>危险</b>级别  
17 - * <ul>  
18 - * <li>正常级别权限:开发者仅仅需要在AndroidManifext.xml上声明,那么应用就会被允许拥有该权限,如:android.permission.INTERNET</li>  
19 - * <li>危险级别权限:开发者需要在AndroidManifext.xml上声明,并且在运行时进行申请,而且用户允许了,应用才会被允许拥有该权限,如:android.permission.WRITE_EXTERNAL_STORAGE</li>  
20 - * </ul>  
21 - * 有米的以下权限需要在Android6.0上被允许,有米广告sdk才能正常工作,开发者需要在调用有米的任何代码之前,提前让用户允许权限  
22 - * <ul>  
23 - * <li>必须申请的权限  
24 - * <ul>  
25 - * <li>android.permission.READ_PHONE_STATE</li>  
26 - * <li>android.permission.WRITE_EXTERNAL_STORAGE</li>  
27 - * </ul>  
28 - * </li>  
29 - * <li>可选申请的权限  
30 - * <ul>  
31 - * <li>android.permission.ACCESS_FINE_LOCATION</li>  
32 - * </ul>  
33 - * </li>  
34 - * </ul>  
35 - * Android 6.0+ 权限申请助手  
36 - *  
37 - * @since 2016-01-12 16 + * sdk所需权限工具类
38 */ 17 */
39 public class PermissionHelper { 18 public class PermissionHelper {
40 - 19 +
41 private static final String TAG = "PermissionHelper"; 20 private static final String TAG = "PermissionHelper";
42 - 21 +
43 /** 22 /**
44 * 小tips:这里的int数值不能太大,否则不会弹出请求权限提示,测试的时候,改到1000就不会弹出请求了 23 * 小tips:这里的int数值不能太大,否则不会弹出请求权限提示,测试的时候,改到1000就不会弹出请求了
45 */ 24 */
46 private final static int READ_PHONE_STATE_CODE = 101; 25 private final static int READ_PHONE_STATE_CODE = 101;
47 - 26 +
48 private final static int WRITE_EXTERNAL_STORAGE_CODE = 102; 27 private final static int WRITE_EXTERNAL_STORAGE_CODE = 102;
49 - 28 +
50 private final static int REQUEST_OPEN_APPLICATION_SETTINGS_CODE = 12345; 29 private final static int REQUEST_OPEN_APPLICATION_SETTINGS_CODE = 12345;
51 - 30 +
52 /** 31 /**
53 - * 有米 Android SDK 所需要向用户申请的权限列表 32 + * Android SDK 所需要向用户申请的权限列表
54 */ 33 */
55 - private PermissionModel[] mPermissionModels = new PermissionModel[] { 34 + private PermissionModel[] mPermissionModels = new PermissionModel[]{
56 new PermissionModel("电话", Manifest.permission.READ_PHONE_STATE, "我们需要读取手机信息的权限来标识您的身份", READ_PHONE_STATE_CODE), 35 new PermissionModel("电话", Manifest.permission.READ_PHONE_STATE, "我们需要读取手机信息的权限来标识您的身份", READ_PHONE_STATE_CODE),
57 new PermissionModel( 36 new PermissionModel(
58 "存储空间", 37 "存储空间",
@@ -61,19 +40,19 @@ public class PermissionHelper { @@ -61,19 +40,19 @@ public class PermissionHelper {
61 WRITE_EXTERNAL_STORAGE_CODE 40 WRITE_EXTERNAL_STORAGE_CODE
62 ) 41 )
63 }; 42 };
64 - 43 +
65 private Activity mActivity; 44 private Activity mActivity;
66 - 45 +
67 private OnApplyPermissionListener mOnApplyPermissionListener; 46 private OnApplyPermissionListener mOnApplyPermissionListener;
68 - 47 +
69 public PermissionHelper(Activity activity) { 48 public PermissionHelper(Activity activity) {
70 mActivity = activity; 49 mActivity = activity;
71 } 50 }
72 - 51 +
73 public void setOnApplyPermissionListener(OnApplyPermissionListener onApplyPermissionListener) { 52 public void setOnApplyPermissionListener(OnApplyPermissionListener onApplyPermissionListener) {
74 mOnApplyPermissionListener = onApplyPermissionListener; 53 mOnApplyPermissionListener = onApplyPermissionListener;
75 } 54 }
76 - 55 +
77 /** 56 /**
78 * 这里我们演示如何在Android 6.0+上运行时申请权限 57 * 这里我们演示如何在Android 6.0+上运行时申请权限
79 */ 58 */
@@ -81,7 +60,7 @@ public class PermissionHelper { @@ -81,7 +60,7 @@ public class PermissionHelper {
81 try { 60 try {
82 for (final PermissionModel model : mPermissionModels) { 61 for (final PermissionModel model : mPermissionModels) {
83 if (PackageManager.PERMISSION_GRANTED != ContextCompat.checkSelfPermission(mActivity, model.permission)) { 62 if (PackageManager.PERMISSION_GRANTED != ContextCompat.checkSelfPermission(mActivity, model.permission)) {
84 - ActivityCompat.requestPermissions(mActivity, new String[] { model.permission }, model.requestCode); 63 + ActivityCompat.requestPermissions(mActivity, new String[]{model.permission}, model.requestCode);
85 return; 64 return;
86 } 65 }
87 } 66 }
@@ -92,7 +71,7 @@ public class PermissionHelper { @@ -92,7 +71,7 @@ public class PermissionHelper {
92 Log.e(TAG, "", e); 71 Log.e(TAG, "", e);
93 } 72 }
94 } 73 }
95 - 74 +
96 /** 75 /**
97 * 对应Activity的 {@code onRequestPermissionsResult(...)} 方法 76 * 对应Activity的 {@code onRequestPermissionsResult(...)} 方法
98 * 77 *
@@ -102,85 +81,85 @@ public class PermissionHelper { @@ -102,85 +81,85 @@ public class PermissionHelper {
102 */ 81 */
103 public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 82 public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
104 switch (requestCode) { 83 switch (requestCode) {
105 - case READ_PHONE_STATE_CODE:  
106 - case WRITE_EXTERNAL_STORAGE_CODE:  
107 - // 如果用户不允许,我们视情况发起二次请求或者引导用户到应用页面手动打开  
108 - if (PackageManager.PERMISSION_GRANTED != grantResults[0]) {  
109 -  
110 - // 二次请求,表现为:以前请求过这个权限,但是用户拒接了  
111 - // 在二次请求的时候,会有一个“不再提示的”checkbox  
112 - // 因此这里需要给用户解释一下我们为什么需要这个权限,否则用户可能会永久不在激活这个申请  
113 - // 方便用户理解我们为什么需要这个权限  
114 - if (ActivityCompat.shouldShowRequestPermissionRationale(mActivity, permissions[0])) {  
115 - AlertDialog.Builder builder = new AlertDialog.Builder(mActivity).setTitle("权限申请")  
116 - .setMessage(findPermissionExplain  
117 - (permissions[0])).setPositiveButton(  
118 - "确定",  
119 - new DialogInterface.OnClickListener  
120 - () {  
121 -  
122 - @Override  
123 - public void onClick(  
124 - DialogInterface dialog,  
125 - int which) {  
126 - applyPermissions();  
127 - }  
128 - }  
129 - );  
130 - builder.setCancelable(false);  
131 - builder.show();  
132 - }  
133 - // 到这里就表示已经是第3+次请求,而且此时用户已经永久拒绝了,这个时候,我们引导用户到应用权限页面,让用户自己手动打开  
134 - else {  
135 - AlertDialog.Builder builder = new AlertDialog.Builder(mActivity).setTitle("权限申请")  
136 - .setMessage("请在打开的窗口的权限中开启" +  
137 - findPermissionName  
138 - (permissions[0]) +  
139 - "权限,以正常使用本应用")  
140 - .setPositiveButton(  
141 - "去设置",  
142 - new DialogInterface.OnClickListener  
143 - () {  
144 -  
145 - @Override  
146 - public void onClick(  
147 - DialogInterface dialog,  
148 - int which) {  
149 - openApplicationSettings(  
150 - REQUEST_OPEN_APPLICATION_SETTINGS_CODE);  
151 - }  
152 - }  
153 - )  
154 - .setNegativeButton(  
155 - "取消",  
156 - new DialogInterface.OnClickListener  
157 - () {  
158 - @Override  
159 - public void onClick(  
160 - DialogInterface dialog,  
161 - int which) {  
162 - mActivity.finish();  
163 - }  
164 - }  
165 - );  
166 - builder.setCancelable(false);  
167 - builder.show(); 84 + case READ_PHONE_STATE_CODE:
  85 + case WRITE_EXTERNAL_STORAGE_CODE:
  86 + // 如果用户不允许,我们视情况发起二次请求或者引导用户到应用页面手动打开
  87 + if (PackageManager.PERMISSION_GRANTED != grantResults[0]) {
  88 +
  89 + // 二次请求,表现为:以前请求过这个权限,但是用户拒接了
  90 + // 在二次请求的时候,会有一个“不再提示的”checkbox
  91 + // 因此这里需要给用户解释一下我们为什么需要这个权限,否则用户可能会永久不在激活这个申请
  92 + // 方便用户理解我们为什么需要这个权限
  93 + if (ActivityCompat.shouldShowRequestPermissionRationale(mActivity, permissions[0])) {
  94 + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity).setTitle("权限申请")
  95 + .setMessage(findPermissionExplain
  96 + (permissions[0])).setPositiveButton(
  97 + "确定",
  98 + new DialogInterface.OnClickListener
  99 + () {
  100 +
  101 + @Override
  102 + public void onClick(
  103 + DialogInterface dialog,
  104 + int which) {
  105 + applyPermissions();
  106 + }
  107 + }
  108 + );
  109 + builder.setCancelable(false);
  110 + builder.show();
  111 + }
  112 + // 到这里就表示已经是第3+次请求,而且此时用户已经永久拒绝了,这个时候,我们引导用户到应用权限页面,让用户自己手动打开
  113 + else {
  114 + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity).setTitle("权限申请")
  115 + .setMessage("请在打开的窗口的权限中开启" +
  116 + findPermissionName
  117 + (permissions[0]) +
  118 + "权限,以正常使用本应用")
  119 + .setPositiveButton(
  120 + "去设置",
  121 + new DialogInterface.OnClickListener
  122 + () {
  123 +
  124 + @Override
  125 + public void onClick(
  126 + DialogInterface dialog,
  127 + int which) {
  128 + openApplicationSettings(
  129 + REQUEST_OPEN_APPLICATION_SETTINGS_CODE);
  130 + }
  131 + }
  132 + )
  133 + .setNegativeButton(
  134 + "取消",
  135 + new DialogInterface.OnClickListener
  136 + () {
  137 + @Override
  138 + public void onClick(
  139 + DialogInterface dialog,
  140 + int which) {
  141 + mActivity.finish();
  142 + }
  143 + }
  144 + );
  145 + builder.setCancelable(false);
  146 + builder.show();
  147 + }
  148 + return;
168 } 149 }
169 - return;  
170 - }  
171 -  
172 - // 到这里就表示用户允许了本次请求,我们继续检查是否还有待申请的权限没有申请  
173 - if (isAllRequestedPermissionGranted()) {  
174 - if (mOnApplyPermissionListener != null) {  
175 - mOnApplyPermissionListener.onAfterApplyAllPermission(); 150 +
  151 + // 到这里就表示用户允许了本次请求,我们继续检查是否还有待申请的权限没有申请
  152 + if (isAllRequestedPermissionGranted()) {
  153 + if (mOnApplyPermissionListener != null) {
  154 + mOnApplyPermissionListener.onAfterApplyAllPermission();
  155 + }
  156 + } else {
  157 + applyPermissions();
176 } 158 }
177 - } else {  
178 - applyPermissions();  
179 - }  
180 - break; 159 + break;
181 } 160 }
182 } 161 }
183 - 162 +
184 /** 163 /**
185 * 对应Activity的 {@code onActivityResult(...)} 方法 164 * 对应Activity的 {@code onActivityResult(...)} 方法
186 * 165 *
@@ -190,18 +169,18 @@ public class PermissionHelper { @@ -190,18 +169,18 @@ public class PermissionHelper {
190 */ 169 */
191 public void onActivityResult(int requestCode, int resultCode, Intent data) { 170 public void onActivityResult(int requestCode, int resultCode, Intent data) {
192 switch (requestCode) { 171 switch (requestCode) {
193 - case REQUEST_OPEN_APPLICATION_SETTINGS_CODE:  
194 - if (isAllRequestedPermissionGranted()) {  
195 - if (mOnApplyPermissionListener != null) {  
196 - mOnApplyPermissionListener.onAfterApplyAllPermission(); 172 + case REQUEST_OPEN_APPLICATION_SETTINGS_CODE:
  173 + if (isAllRequestedPermissionGranted()) {
  174 + if (mOnApplyPermissionListener != null) {
  175 + mOnApplyPermissionListener.onAfterApplyAllPermission();
  176 + }
  177 + } else {
  178 + mActivity.finish();
197 } 179 }
198 - } else {  
199 - mActivity.finish();  
200 - }  
201 - break; 180 + break;
202 } 181 }
203 } 182 }
204 - 183 +
205 /** 184 /**
206 * 判断是否所有的权限都被授权了 185 * 判断是否所有的权限都被授权了
207 * 186 *
@@ -215,12 +194,11 @@ public class PermissionHelper { @@ -215,12 +194,11 @@ public class PermissionHelper {
215 } 194 }
216 return true; 195 return true;
217 } 196 }
218 - 197 +
219 /** 198 /**
220 * 打开应用设置界面 199 * 打开应用设置界面
221 * 200 *
222 * @param requestCode 请求码 201 * @param requestCode 请求码
223 - *  
224 * @return 202 * @return
225 */ 203 */
226 private boolean openApplicationSettings(int requestCode) { 204 private boolean openApplicationSettings(int requestCode) {
@@ -228,7 +206,7 @@ public class PermissionHelper { @@ -228,7 +206,7 @@ public class PermissionHelper {
228 Intent intent = 206 Intent intent =
229 new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + mActivity.getPackageName())); 207 new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + mActivity.getPackageName()));
230 intent.addCategory(Intent.CATEGORY_DEFAULT); 208 intent.addCategory(Intent.CATEGORY_DEFAULT);
231 - 209 +
232 // Android L 之后Activity的启动模式发生了一些变化 210 // Android L 之后Activity的启动模式发生了一些变化
233 // 如果用了下面的 Intent.FLAG_ACTIVITY_NEW_TASK ,并且是 startActivityForResult 211 // 如果用了下面的 Intent.FLAG_ACTIVITY_NEW_TASK ,并且是 startActivityForResult
234 // 那么会在打开新的activity的时候就会立即回调 onActivityResult 212 // 那么会在打开新的activity的时候就会立即回调 onActivityResult
@@ -240,12 +218,11 @@ public class PermissionHelper { @@ -240,12 +218,11 @@ public class PermissionHelper {
240 } 218 }
241 return false; 219 return false;
242 } 220 }
243 - 221 +
244 /** 222 /**
245 * 查找申请权限的解释短语 223 * 查找申请权限的解释短语
246 * 224 *
247 * @param permission 权限 225 * @param permission 权限
248 - *  
249 * @return 226 * @return
250 */ 227 */
251 private String findPermissionExplain(String permission) { 228 private String findPermissionExplain(String permission) {
@@ -258,12 +235,11 @@ public class PermissionHelper { @@ -258,12 +235,11 @@ public class PermissionHelper {
258 } 235 }
259 return null; 236 return null;
260 } 237 }
261 - 238 +
262 /** 239 /**
263 * 查找申请权限的名称 240 * 查找申请权限的名称
264 * 241 *
265 * @param permission 权限 242 * @param permission 权限
266 - *  
267 * @return 243 * @return
268 */ 244 */
269 private String findPermissionName(String permission) { 245 private String findPermissionName(String permission) {
@@ -276,29 +252,29 @@ public class PermissionHelper { @@ -276,29 +252,29 @@ public class PermissionHelper {
276 } 252 }
277 return null; 253 return null;
278 } 254 }
279 - 255 +
280 private static class PermissionModel { 256 private static class PermissionModel {
281 - 257 +
282 /** 258 /**
283 * 权限名称 259 * 权限名称
284 */ 260 */
285 public String name; 261 public String name;
286 - 262 +
287 /** 263 /**
288 * 请求的权限 264 * 请求的权限
289 */ 265 */
290 public String permission; 266 public String permission;
291 - 267 +
292 /** 268 /**
293 * 解析为什么请求这个权限 269 * 解析为什么请求这个权限
294 */ 270 */
295 public String explain; 271 public String explain;
296 - 272 +
297 /** 273 /**
298 * 请求代码 274 * 请求代码
299 */ 275 */
300 public int requestCode; 276 public int requestCode;
301 - 277 +
302 public PermissionModel(String name, String permission, String explain, int requestCode) { 278 public PermissionModel(String name, String permission, String explain, int requestCode) {
303 this.name = name; 279 this.name = name;
304 this.permission = permission; 280 this.permission = permission;
@@ -306,16 +282,16 @@ public class PermissionHelper { @@ -306,16 +282,16 @@ public class PermissionHelper {
306 this.requestCode = requestCode; 282 this.requestCode = requestCode;
307 } 283 }
308 } 284 }
309 - 285 +
310 /** 286 /**
311 * 权限申请事件监听 287 * 权限申请事件监听
312 */ 288 */
313 public interface OnApplyPermissionListener { 289 public interface OnApplyPermissionListener {
314 - 290 +
315 /** 291 /**
316 * 申请所有权限之后的逻辑 292 * 申请所有权限之后的逻辑
317 */ 293 */
318 void onAfterApplyAllPermission(); 294 void onAfterApplyAllPermission();
319 } 295 }
320 - 296 +
321 } 297 }
app/src/main/res/drawable/vlion_bg_jump.xml
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <shape xmlns:android="http://schemas.android.com/apk/res/android" 2 <shape xmlns:android="http://schemas.android.com/apk/res/android"
3 android:shape="rectangle" 3 android:shape="rectangle"
4 android:useLevel="false"> 4 android:useLevel="false">
5 - <solid android:color="#66000000" /> 5 + <solid android:color="#2f000000" />
6 <corners 6 <corners
7 android:bottomLeftRadius="10dp" 7 android:bottomLeftRadius="10dp"
8 android:bottomRightRadius="10dp" 8 android:bottomRightRadius="10dp"
app/src/main/res/xml/file_provider.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<paths>
  3 +
  4 + <!--
  5 + ## 说明
  6 +
  7 + 这个文件为开发者适配Android 7.0系统以上才需要配置瑞狮的相关内容,如果没有兼容到的话,可以不管
  8 + -->
  9 +
  10 + <cache-path
  11 + name="apk1"
  12 + path="." />
  13 + <external-path
  14 + name="apk2"
  15 + path="." />
  16 +</paths>
0 \ No newline at end of file 17 \ No newline at end of file