Skip to content

Commit

Permalink
SDCardUtil
Browse files Browse the repository at this point in the history
  • Loading branch information
SiberiaDante committed Sep 15, 2017
1 parent 5048ba4 commit a6677dc
Show file tree
Hide file tree
Showing 8 changed files with 325 additions and 42 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.android.tools.build:gradle:2.3.3'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand Down
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Tue Sep 05 12:03:48 CST 2017
#Fri Sep 15 10:45:07 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
2 changes: 1 addition & 1 deletion sample/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
android:name=".ui.activity.view.KeyBoardActivity"
android:windowSoftInputMode="adjustResize" />
<activity android:name=".ui.activity.util.SDCardUtilActivity" />
<activity android:name=".ui.activity.WebActivity"></activity>
<activity android:name=".ui.activity.WebVideoActivity"></activity>
</application>

</manifest>
166 changes: 166 additions & 0 deletions sample/src/main/java/com/sample/ui/activity/WebVideoActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
package com.sample.ui.activity;

import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;

import com.sample.R;

public class WebVideoActivity extends BaseActivity {
private FrameLayout mFrameLayout;
private WebView mWebView;
private InsideWebChromeClient mInsideWebChromeClient;
//private JavascriptInterface javascriptInterface;
private String URL = "http://www.chinichi.cn/news/index/app_detail.html?id=2362";

@Override
protected void onCreate(Bundle savedInstanceState) {
// 1
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_video);
// 2
mFrameLayout = (FrameLayout) findViewById(R.id.mFrameLayout);
mWebView = (WebView) findViewById(R.id.mWebView);
// 3
initWebView();
mWebView.loadUrl(URL);
}

private void initWebView() {
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setPluginState(WebSettings.PluginState.ON);
//settings.setPluginsEnabled(true);
settings.setAllowFileAccess(true);
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);
settings.setAppCacheEnabled(false);
// settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
// settings.setCacheMode(WebSettings.LOAD_DEFAULT);
mInsideWebChromeClient = new InsideWebChromeClient();
InsideWebViewClient mInsideWebViewClient = new InsideWebViewClient();
//javascriptInterface = new JavascriptInterface();
//mWebView.addJavascriptInterface(javascriptInterface, "java2js_laole918");
mWebView.setWebChromeClient(mInsideWebChromeClient);
mWebView.setWebViewClient(mInsideWebViewClient);
}

private class InsideWebChromeClient extends WebChromeClient {
private View mCustomView;
private CustomViewCallback mCustomViewCallback;

@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
super.onShowCustomView(view, callback);
if (mCustomView != null) {
callback.onCustomViewHidden();
return;
}
mCustomView = view;
mFrameLayout.addView(mCustomView);
mCustomViewCallback = callback;
mWebView.setVisibility(View.GONE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

public void onHideCustomView() {
mWebView.setVisibility(View.VISIBLE);
if (mCustomView == null) {
return;
}
mCustomView.setVisibility(View.GONE);
mFrameLayout.removeView(mCustomView);
mCustomViewCallback.onCustomViewHidden();
mCustomView = null;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
super.onHideCustomView();
}

@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
mWebView = new WebView(view.getContext());
view.addView(mWebView);
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient());
mWebView.setWebChromeClient(this);

WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(mWebView);
resultMsg.sendToTarget();
return true;
}
}

private class InsideWebViewClient extends WebViewClient {

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}

@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//mWebView.loadUrl(javascript);
}

}

@Override
public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);
switch (config.orientation) {
case Configuration.ORIENTATION_LANDSCAPE:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
break;
case Configuration.ORIENTATION_PORTRAIT:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
break;
}
}

@Override
public void onPause() {
super.onPause();
mWebView.onPause();
}

@Override
public void onResume() {
super.onResume();
mWebView.onResume();
}

@Override
public void onBackPressed() {
if (mWebView.canGoBack()) {
mWebView.goBack();
return;
}
super.onBackPressed();
}

@Override
public void onDestroy() {
mWebView.destroy();
super.onDestroy();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,16 @@ protected void onCreate(Bundle savedInstanceState) {
final StringBuilder builder = new StringBuilder();
builder.append("---判断SD卡是否可用---" + SDCardUtil.isSDCardMounted());
builder.append("\n");
builder.append("---判断SDCard是否可拆卸---" + SDCardUtil.isSDCarfRemovable());
builder.append("\n");
builder.append("---getExternalStorageState---" + SDCardUtil.getExternalStorageState());
builder.append("\n");
builder.append("---获取SD卡的根目录---" + SDCardUtil.getSDCardBaseDir());
builder.append("\n");
builder.append("---获取SD卡的根目录---" + SDCardUtil.getSDCardPath());
builder.append("\n");
builder.append("---获取SD卡data路径---" + SDCardUtil.getDataPath());
builder.append("\n");
builder.append("---获取SD卡的信息---" + SDCardUtil.getSDCardInfo());
builder.append("\n");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
Expand All @@ -39,15 +43,34 @@ protected void onCreate(Bundle savedInstanceState) {
builder.append("\n");
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
builder.append("---获取SD卡的剩余空间大小---" + SDCardUtil.getSDCardFreeSizeMB()+ " MB");
builder.append("---获取SD卡的剩余空间大小---" + SDCardUtil.getSDCardFreeSizeMB() + " MB");
builder.append("\n");
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
builder.append("---获取SD卡的可用空间大小---" + SDCardUtil.getSDCardAvailableSizeMB()+ " MB");
builder.append("---获取SD卡的可用空间大小---" + SDCardUtil.getSDCardAvailableSizeMB() + " MB");
builder.append("\n");
}
builder.append("---获取SD卡data路径---" + SDCardUtil.getDataPath());

builder.append("---获取SD卡私有Cache目录的路径---" + SDCardUtil.getSDCardPrivateCacheDir());
builder.append("\n");
builder.append("---判断路径文件是否存在---" + SDCardUtil.isFileExist(SDCardUtil.getDataPath()));
builder.append("\n");
builder.append("---获取当前程序路径 应用在内存上的目录---" + SDCardUtil.getCurrentAppStoragePath());
builder.append("\n");
builder.append("---应用的在内存上的缓存目录---" + SDCardUtil.getCurrentAppCachePath());
builder.append("\n");
builder.append("---应用在外部存储上的目录---" + SDCardUtil.getCurrentAppExternalStoragePath());
builder.append("\n");
builder.append("---应用的在外部存储上的缓存目录---" + SDCardUtil.getCurrentAppExternalCachePath());
builder.append("\n");
builder.append("---获取该程序的安装包路径---" + SDCardUtil.getCurrentAppPackageResourcePath());
builder.append("\n");
builder.append("---获取程序默认数据库路径---" + SDCardUtil.getCurrentAppDatabasePath("sample"));
builder.append("\n");
builder.append("---获取下载文件存储路径---" + SDCardUtil.getDownloadCachePath());
builder.append("\n");


t.setText(builder.toString());
}
}
2 changes: 2 additions & 0 deletions sample/src/main/java/com/sample/ui/fragment/ViewFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import com.sample.adapter.CustomAdapter;
import com.sample.bean.UtilData;
import com.sample.ui.BaseFragment;
import com.sample.ui.activity.WebVideoActivity;
import com.sample.ui.activity.util.ActivityUtilActivity;
import com.sample.ui.activity.util.AppActivity;
import com.sample.ui.activity.util.ClearActivity;
Expand Down Expand Up @@ -91,6 +92,7 @@ protected void initData() {
datas.add(new UtilData("Shape封装的View测试", ShapeViewActivity.class.getName()));
datas.add(new UtilData("点击View切换软件盘测试", KeyBoardActivity.class.getName()));
datas.add(new UtilData("QQ运动计步器View", QQStepViewActivity.class.getName()));
datas.add(new UtilData("WebVideoActivity", WebVideoActivity.class.getName()));
adapter.addAll(datas);
}

Expand Down
12 changes: 12 additions & 0 deletions sample/src/main/res/layout/activity_web_video.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mFrameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<WebView
android:id="@+id/mWebView"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</FrameLayout>
Loading

0 comments on commit a6677dc

Please sign in to comment.