| | |
| | | package com.weikou.beibeivideo.ui; |
| | | |
| | | import android.Manifest; |
| | | import android.app.AlertDialog; |
| | | import android.app.Dialog; |
| | | import android.content.Context; |
| | | import android.content.DialogInterface; |
| | | import android.content.Intent; |
| | | import android.content.SharedPreferences; |
| | | import android.content.pm.ActivityInfo; |
| | | import android.content.pm.PackageManager; |
| | | import android.net.Uri; |
| | | import android.os.AsyncTask; |
| | | import android.os.Build; |
| | | import android.os.Bundle; |
| | | import android.provider.Settings; |
| | | import android.support.v4.app.ActivityCompat; |
| | | import android.support.v4.content.ContextCompat; |
| | | import android.telephony.TelephonyManager; |
| | | import android.view.KeyEvent; |
| | | import android.view.View; |
| | | import android.view.ViewGroup; |
| | | import android.widget.ImageView; |
| | | import android.widget.LinearLayout; |
| | | import android.widget.TextView; |
| | | |
| | | import com.bumptech.glide.Glide; |
| | | import com.google.gson.Gson; |
| | | import com.lcjian.library.util.common.StringUtils; |
| | | import com.qq.e.ads.splash.SplashAD; |
| | | import com.qq.e.ads.splash.SplashADListener; |
| | | import com.qq.e.comm.util.AdError; |
| | | import com.tencent.smtt.sdk.WebView; |
| | | import com.umeng.analytics.MobclickAgent; |
| | | import com.weikou.beibeivideo.BasicTextHttpResponseHandler; |
| | | import com.weikou.beibeivideo.BeibeiVideoAPI; |
| | | import com.weikou.beibeivideo.BeibeiVideoApplication; |
| | | import com.weikou.beibeivideo.R; |
| | | import com.weikou.beibeivideo.entity.ad.AdTypeVO; |
| | | import com.weikou.beibeivideo.ui.main.MainActivity; |
| | | import com.weikou.beibeivideo.util.BeibeiConstant; |
| | | import com.weikou.beibeivideo.util.PermissionHintDialog; |
| | | import com.weikou.beibeivideo.util.PermissionsActivity; |
| | | import com.weikou.beibeivideo.util.GlideRoundTransform; |
| | | import com.weikou.beibeivideo.util.PermissionsChecker; |
| | | import com.weikou.beibeivideo.util.SDCardUtil; |
| | | import com.yeshi.buwanshequ.R; |
| | | import com.weikou.beibeivideo.util.ad.AdUtil; |
| | | import com.weikou.beibeivideo.util.ad.CSJConstant; |
| | | import com.weikou.beibeivideo.util.ad.GDTConstant; |
| | | import com.weikou.beibeivideo.util.ad.SplashAdUtil; |
| | | |
| | | import org.apache.http.Header; |
| | | import org.json.JSONObject; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | |
| | | import static android.content.pm.PackageManager.PERMISSION_GRANTED; |
| | | |
| | | public class SplashActivity extends BaseActivity { |
| | | |
| | |
| | | |
| | | private TextView ad_close_time; |
| | | |
| | | private ImageView iv_logo; |
| | | |
| | | private static String TAG = "SplashActivity"; |
| | | |
| | | // 所需的全部权限 |
| | | static final String[] PERMISSIONS = new String[]{ |
| | | Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE, |
| | | Manifest.permission.WRITE_EXTERNAL_STORAGE |
| | | Manifest.permission.READ_PHONE_STATE |
| | | }; |
| | | private static final int REQUEST_CODE = 0; // 请求码 |
| | | private PermissionsChecker mPermissionsChecker; // 权限检测器 |
| | |
| | | } |
| | | setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); |
| | | setContentView(R.layout.activity_splash); |
| | | |
| | | |
| | | /* |
| | | * 计算状态栏高度并设置 |
| | |
| | | findViewById(R.id.v_status_bar).setVisibility(View.GONE); |
| | | } |
| | | |
| | | vg_ad = (ViewGroup) findViewById(R.id.fl_splash_ad); |
| | | vg_input = (ViewGroup) findViewById(R.id.fl_input); |
| | | ad_close_time = (TextView) findViewById(R.id.ad_close_time); |
| | | vg_ad = findViewById(R.id.fl_splash_ad); |
| | | vg_input = findViewById(R.id.fl_input); |
| | | ad_close_time = findViewById(R.id.ad_close_time); |
| | | iv_logo = findViewById(R.id.iv_logo); |
| | | |
| | | Glide.with(getApplicationContext()).load(R.drawable.ic_launcher).transform(new GlideRoundTransform(getApplicationContext(), 5)).into(iv_logo); |
| | | |
| | | SharedPreferences preferences = getSharedPreferences("link_page", |
| | | Context.MODE_PRIVATE); |
| | |
| | | SDCardUtil.initStorage(this); |
| | | //初始化一次Banner,否则后面Banner使用时会出现卡顿 |
| | | // new BannerView(SplashActivity.this, ADSize.BANNER, BeibeiConstant.GDT_ID, BeibeiConstant.GDT_PLAYER_DETAIL); |
| | | |
| | | vg_ad.post(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | myRequetPermission(); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | public void onResume() { |
| | | super.onResume(); |
| | | MobclickAgent.onPageStart("欢迎页"); |
| | | if (mPermissionsChecker.lacksPermissions(PERMISSIONS)) { |
| | | PermissionHintDialog.Builder builder = new PermissionHintDialog.Builder(this); |
| | | builder.setMessage("为保障正常使用相关功能,请允许影视大全获取相关基础权限").setPositiveButton("我知道啦", new DialogInterface.OnClickListener() { |
| | | @Override |
| | | public void onClick(DialogInterface dialogInterface, int i) { |
| | | startPermissionsActivity(); |
| | | dialogInterface.dismiss(); |
| | | } |
| | | }).create().show(); |
| | | } else { |
| | | getUid(); |
| | | new WebView(this); |
| | | vg_ad.postDelayed(new Runnable() { |
| | | |
| | | @Override |
| | | public void run() { |
| | | if (!BeibeiConstant.AD_SETTING_KAIPIN) |
| | | toMainActivity(); |
| | | |
| | | new SplashAD(SplashActivity.this, vg_input, BeibeiConstant.GDT_SPLASH_POSITION_ID_HUAWEI2, new SplashADListener() { |
| | | @Override |
| | | public void onADDismissed() { |
| | | runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | toMainActivity(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public void onNoAD(AdError adError) { |
| | | final String msg=adError.getErrorMsg(); |
| | | runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | toMainActivity(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public void onADPresent() { |
| | | runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | vg_input.setVisibility(View.VISIBLE); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public void onADClicked() { |
| | | System.out.println(""); |
| | | } |
| | | |
| | | @Override |
| | | public void onADTick(final long l) { |
| | | runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | ad_close_time.setText(l / 1000 + ""); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public void onADExposure() { |
| | | System.out.println(""); |
| | | } |
| | | |
| | | @Override |
| | | public void onADLoaded(long l) { |
| | | System.out.println(""); |
| | | } |
| | | }, 0).fetchAndShowIn(vg_ad); |
| | | |
| | | } |
| | | }, 1000); |
| | | } |
| | | } |
| | | |
| | | private void startPermissionsActivity() { |
| | | PermissionsActivity.startActivityForResult(this, REQUEST_CODE, PERMISSIONS); |
| | | } |
| | | |
| | | |
| | | private void getUid() { |
| | | final SharedPreferences preferences = getSharedPreferences("user", |
| | |
| | | BeibeiConstant.GDT_DISCOVER_NATIVE = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | BeibeiConstant.GDT_GUESS_LIKE_NATIVE = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | BeibeiConstant.GDT_RECOMMEND_CATEGORY_NATIVE = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | BeibeiConstant.GDT_EXIT_DIALOG = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | BeibeiConstant.GDT_SEARCH_RESULT_MIN_NATIVE = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | BeibeiConstant.GDT_PLAYER_DETAIL = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | BeibeiConstant.GDT_CATEGORY_BANNER = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | GDTConstant.PID_HOME_RECOMMEND_BIG_IMG = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | GDTConstant.PID_2_VIDEO_DETAIL_PLAY_EXPRESS1 = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | GDTConstant.PID_2_VIDEO_DETAIL_PLAY_EXPRESS2 = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | GDTConstant.PID_2_VIDEO_LIST_SMALL_AD_COLUMN3 = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | GDTConstant.PID_2_VIDEO_LIST_SMALL_AD_COLUMN2 = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | GDTConstant.PID_HOME_RECOMMEND_BIG_IMG = BeibeiConstant.GDT_DOWNLOAD_HINT_ID; |
| | | |
| | | CSJConstant.RECOMMEND_BIG_IMG_AD = CSJConstant.INVALID_AD; |
| | | } |
| | | |
| | | //获取广告 |
| | |
| | | finish(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 加载开屏广告 |
| | | * |
| | | * @param adType |
| | | */ |
| | | private void loadSplashAd(final AdUtil.AD_TYPE adType) { |
| | | SplashAdUtil.loadAD(adType, SplashActivity.this, vg_input, vg_ad, ad_close_time, new SplashAdUtil.SplashAdListener() { |
| | | @Override |
| | | public void close() { |
| | | runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | toMainActivity(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public void noAd() {//初次加载未加载出广告 |
| | | if (AdUtil.AD_TYPE.csj == adType) { |
| | | //再次加载广点通广告 |
| | | SplashAdUtil.loadAD(AdUtil.AD_TYPE.gdt, SplashActivity.this, vg_input, vg_ad, ad_close_time, new SplashAdUtil.SplashAdListener() { |
| | | @Override |
| | | public void close() { |
| | | runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | toMainActivity(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public void noAd() { |
| | | runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | toMainActivity(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | } else if (AdUtil.AD_TYPE.gdt == adType) { |
| | | //再次加载穿山甲广告 |
| | | //再次加载广点通广告 |
| | | SplashAdUtil.loadAD(AdUtil.AD_TYPE.csj, SplashActivity.this, vg_input, vg_ad, ad_close_time, new SplashAdUtil.SplashAdListener() { |
| | | @Override |
| | | public void close() { |
| | | runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | toMainActivity(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public void noAd() { |
| | | runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | toMainActivity(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | } else { |
| | | runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | toMainActivity(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | private void myRequetPermission() { |
| | | if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PERMISSION_GRANTED) { |
| | | ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_CODE); |
| | | } else { |
| | | //百度内容联盟 |
| | | // MobadsPermissionSettings.setPermissionReadDeviceID(true); |
| | | getUid(); |
| | | new WebView(this); |
| | | vg_ad.postDelayed(new Runnable() { |
| | | |
| | | @Override |
| | | public void run() { |
| | | if (!BeibeiConstant.AD_SETTING_KAIPIN) |
| | | toMainActivity(); |
| | | BeibeiVideoAPI.getConfig(getApplicationContext(), new BasicTextHttpResponseHandler() { |
| | | |
| | | @Override |
| | | public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { |
| | | if (jsonObject != null) { |
| | | if (jsonObject.getBoolean("IsPost")) { |
| | | JSONObject data = jsonObject.getJSONObject("Data"); |
| | | JSONObject ad = data.optJSONObject("ad"); |
| | | AdUtil.saveAdConfig(getApplicationContext(), ad); |
| | | AdUtil.AD_TYPE splash = AdUtil.getAdType(getApplicationContext(), AdUtil.POSITION_SPLASH); |
| | | loadSplashAd(splash); |
| | | } |
| | | } else { |
| | | loadSplashAd(AdUtil.AD_TYPE.gdt); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onSuccess(int statusCode, Header[] headers, String responseString) { |
| | | super.onSuccess(statusCode, headers, responseString); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { |
| | | super.onFailure(statusCode, headers, responseString, throwable); |
| | | loadSplashAd(AdUtil.AD_TYPE.gdt); |
| | | } |
| | | }); |
| | | |
| | | |
| | | } |
| | | }, 1000); |
| | | } |
| | | } |
| | | |
| | | Dialog mDialog; |
| | | AlertDialog alertDialog; |
| | | |
| | | @Override |
| | | public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { |
| | | super.onRequestPermissionsResult(requestCode, permissions, grantResults); |
| | | if (requestCode == REQUEST_CODE) { |
| | | for (int i = 0; i < permissions.length; i++) { |
| | | if (grantResults[i] == PERMISSION_GRANTED) {//选择了“始终允许” |
| | | myRequetPermission(); |
| | | } else { |
| | | if (!ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[i])) {//用户选择了禁止不再询问 |
| | | AlertDialog.Builder builder = new AlertDialog.Builder(SplashActivity.this); |
| | | builder.setTitle("权限请求") |
| | | .setMessage("当前应用缺少必要的权限\n请点击设置-权限 打开电话和存储权限,以正常使用APP的功能") |
| | | .setPositiveButton("去设置", new DialogInterface.OnClickListener() { |
| | | public void onClick(DialogInterface dialog, int id) { |
| | | if (mDialog != null && mDialog.isShowing()) { |
| | | mDialog.dismiss(); |
| | | } |
| | | Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); |
| | | Uri uri = Uri.fromParts("package", getPackageName(), null);//注意就是"package",不用改成自己的包名 |
| | | intent.setData(uri); |
| | | startActivityForResult(intent, REQUEST_CODE); |
| | | } |
| | | }); |
| | | mDialog = builder.create(); |
| | | mDialog.setCanceledOnTouchOutside(false); |
| | | mDialog.show(); |
| | | } else {//选择禁止 |
| | | AlertDialog.Builder builder = new AlertDialog.Builder(this); |
| | | builder.setTitle("权限请求") |
| | | .setMessage("点击允许才可以使用哦") |
| | | .setPositiveButton("去允许", new DialogInterface.OnClickListener() { |
| | | public void onClick(DialogInterface dialog, int id) { |
| | | if (alertDialog != null && alertDialog.isShowing()) { |
| | | alertDialog.dismiss(); |
| | | } |
| | | ActivityCompat.requestPermissions(SplashActivity.this, |
| | | new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_CODE); |
| | | } |
| | | }); |
| | | alertDialog = builder.create(); |
| | | alertDialog.setCanceledOnTouchOutside(false); |
| | | alertDialog.show(); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | protected void onActivityResult(int requestCode, int resultCode, Intent data) { |
| | | super.onActivityResult(requestCode, resultCode, data); |
| | | if (requestCode == REQUEST_CODE) { |
| | | myRequetPermission();//由于不知道是否选择了允许所以需要再次判断 |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |