Commit b43cb00b by chengfengpiaopiao

相册摄像头权限6.0

parent c639a210
...@@ -2,9 +2,7 @@ ...@@ -2,9 +2,7 @@
<project version="4"> <project version="4">
<component name="ProjectModuleManager"> <component name="ProjectModuleManager">
<modules> <modules>
<module fileurl="file://$PROJECT_DIR$/DuoBaoJingCai.iml" filepath="$PROJECT_DIR$/DuoBaoJingCai.iml" />
<module fileurl="file://$PROJECT_DIR$/DuoBaoJingCai2.iml" filepath="$PROJECT_DIR$/DuoBaoJingCai2.iml" /> <module fileurl="file://$PROJECT_DIR$/DuoBaoJingCai2.iml" filepath="$PROJECT_DIR$/DuoBaoJingCai2.iml" />
<module fileurl="file://G:/Product/Android/DuoBaoJingCai/DuoBaoJingCai2.iml" filepath="G:/Product/Android/DuoBaoJingCai/DuoBaoJingCai2.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
<module fileurl="file://$PROJECT_DIR$/multi-image-selector/multi-image-selector.iml" filepath="$PROJECT_DIR$/multi-image-selector/multi-image-selector.iml" /> <module fileurl="file://$PROJECT_DIR$/multi-image-selector/multi-image-selector.iml" filepath="$PROJECT_DIR$/multi-image-selector/multi-image-selector.iml" />
</modules> </modules>
......
...@@ -105,6 +105,8 @@ dependencies { ...@@ -105,6 +105,8 @@ dependencies {
exclude group: 'com.android.support', module: 'support-annotations' exclude group: 'com.android.support', module: 'support-annotations'
}) })
compile 'com.android.support:appcompat-v7:25.0.0' compile 'com.android.support:appcompat-v7:25.0.0'
compile "com.android.support:support-v13:23.1.0"
testCompile 'junit:junit:4.12' testCompile 'junit:junit:4.12'
compile "com.jakewharton:butterknife:6.1.0" compile "com.jakewharton:butterknife:6.1.0"
...@@ -126,4 +128,5 @@ dependencies { ...@@ -126,4 +128,5 @@ dependencies {
compile 'com.meituan.android.walle:library:1.1.5' //walle compile 'com.meituan.android.walle:library:1.1.5' //walle
compile project(path: ':multi-image-selector') compile project(path: ':multi-image-selector')
compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.3@aar'
} }
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<application <application
android:name=".DuoBaoApplication" android:name=".DuoBaoApplication"
...@@ -55,7 +56,7 @@ ...@@ -55,7 +56,7 @@
android:name=".view.activity.MainActivity" android:name=".view.activity.MainActivity"
android:exported="true" android:exported="true"
android:launchMode="singleTask" android:launchMode="singleTask"
android:theme="@android:style/Theme.Translucent" android:theme="@style/Theme.AppCompat.Light.NoActionBar"
android:screenOrientation="portrait"> android:screenOrientation="portrait">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
......
...@@ -20,6 +20,7 @@ import com.umeng.analytics.MobclickAgent; ...@@ -20,6 +20,7 @@ import com.umeng.analytics.MobclickAgent;
public class BaseApplication extends Application{ public class BaseApplication extends Application{
public static IWXAPI sApi; public static IWXAPI sApi;
protected static BaseApplication sInstance; protected static BaseApplication sInstance;
private Context mApplicationContext;
@Override @Override
public void onCreate() { public void onCreate() {
...@@ -69,7 +70,7 @@ public class BaseApplication extends Application{ ...@@ -69,7 +70,7 @@ public class BaseApplication extends Application{
} }
public static Context getAppContext() { public static Context getAppContext() {
return sInstance; return getAppContext();
} }
/** /**
......
package com.maile.jingcai.view.activity; package com.maile.jingcai.view.activity;
import android.Manifest;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
...@@ -7,6 +8,8 @@ import android.net.Uri; ...@@ -7,6 +8,8 @@ import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
...@@ -18,6 +21,7 @@ import android.view.KeyEvent; ...@@ -18,6 +21,7 @@ import android.view.KeyEvent;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
import android.webkit.WebView; import android.webkit.WebView;
import android.widget.Toast;
import com.flyco.tablayout.CommonTabLayout; import com.flyco.tablayout.CommonTabLayout;
import com.flyco.tablayout.listener.CustomTabEntity; import com.flyco.tablayout.listener.CustomTabEntity;
...@@ -34,12 +38,14 @@ import com.maile.jingcai.util.CameraUtil; ...@@ -34,12 +38,14 @@ import com.maile.jingcai.util.CameraUtil;
import com.maile.jingcai.util.DrawUtil; import com.maile.jingcai.util.DrawUtil;
import com.maile.jingcai.util.ImageUtils; import com.maile.jingcai.util.ImageUtils;
import com.maile.jingcai.util.NetUtils; import com.maile.jingcai.util.NetUtils;
import com.maile.jingcai.util.PermissionUtils;
import com.maile.jingcai.util.PublicUtils; import com.maile.jingcai.util.PublicUtils;
import com.maile.jingcai.util.preferences.IPreferencesIds; import com.maile.jingcai.util.preferences.IPreferencesIds;
import com.maile.jingcai.util.preferences.PreferencesManager; import com.maile.jingcai.util.preferences.PreferencesManager;
import com.maile.jingcai.view.ViewFindUtils; import com.maile.jingcai.view.ViewFindUtils;
import com.maile.jingcai.view.fragment.SimpleCardFragment; import com.maile.jingcai.view.fragment.SimpleCardFragment;
import com.maile.jingcai.view.iview.IWebView; import com.maile.jingcai.view.iview.IWebView;
import com.tbruyelle.rxpermissions2.RxPermissions;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import java.io.File; import java.io.File;
...@@ -58,7 +64,7 @@ import rx.schedulers.Schedulers; ...@@ -58,7 +64,7 @@ import rx.schedulers.Schedulers;
* Created by chengfeng-piaopiao on 2017/11/8. * Created by chengfeng-piaopiao on 2017/11/8.
*/ */
public class MainActivity extends FragmentActivity implements IWebView { public class MainActivity extends FragmentActivity implements IWebView ,ActivityCompat.OnRequestPermissionsResultCallback{
public static final int EDIT_USER_INFO_SUCCESS_CODE = 200; // 修改成功 public static final int EDIT_USER_INFO_SUCCESS_CODE = 200; // 修改成功
private static final int SEX_TYPE_MALE = 1; private static final int SEX_TYPE_MALE = 1;
private static final int SEX_TYPE_FEMALE = 2; private static final int SEX_TYPE_FEMALE = 2;
...@@ -382,15 +388,28 @@ public class MainActivity extends FragmentActivity implements IWebView { ...@@ -382,15 +388,28 @@ public class MainActivity extends FragmentActivity implements IWebView {
//mPicSelectView.show(true);拉起activity //mPicSelectView.show(true);拉起activity
Intent intent; Intent intent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//19版本 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//19版本
String savePath = Constant.SHARE_DIR + System.currentTimeMillis() + ".png";
Intent intentHead = new Intent(MainActivity.this, ImageCropHeadActivity.class); Intent intentHead = new Intent(MainActivity.this, ImageCropHeadActivity.class);
startActivityForResult(intentHead, IMAGE_HEAD); startActivityForResult(intentHead, IMAGE_HEAD);
} else { } else {
intent = CameraUtil.cropImageUri(); intent = CameraUtil.cropImageUri();
startActivityForResult(intent, CameraUtil.SELECT_A_PICTURE); startActivityForResult(intent, CameraUtil.SELECT_A_PICTURE);
} }
} }
} }
private PermissionUtils.PermissionGrant mPermissionGrant = new PermissionUtils.PermissionGrant() {
@Override
public void onPermissionGranted(int requestCode) {
}
};
/**
* Callback received when a permissions request has been completed.
*/
@Override
public void onRequestPermissionsResult(final int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
PermissionUtils.requestPermissionsResult(this, requestCode, permissions, grantResults, mPermissionGrant);
}
} }
...@@ -3,13 +3,17 @@ package com.maile.jingcai.view.fragment; ...@@ -3,13 +3,17 @@ package com.maile.jingcai.view.fragment;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.annotation.RequiresApi; import android.support.annotation.RequiresApi;
import android.support.v13.app.FragmentCompat;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v7.app.AlertDialog;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
...@@ -23,15 +27,19 @@ import android.webkit.WebView; ...@@ -23,15 +27,19 @@ import android.webkit.WebView;
import android.webkit.WebViewClient; import android.webkit.WebViewClient;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.Toast;
import com.maile.jingcai.R; import com.maile.jingcai.R;
import com.maile.jingcai.base.BaseApplication;
import com.maile.jingcai.base.BaseFragment; import com.maile.jingcai.base.BaseFragment;
import com.maile.jingcai.module.WrapperRspEntity; import com.maile.jingcai.module.WrapperRspEntity;
import com.maile.jingcai.module.api.LoginApiService; import com.maile.jingcai.module.api.LoginApiService;
import com.maile.jingcai.module.net.RetrofitManager; import com.maile.jingcai.module.net.RetrofitManager;
import com.maile.jingcai.util.PermissionUtils;
import com.maile.jingcai.util.PublicUtils; import com.maile.jingcai.util.PublicUtils;
import com.maile.jingcai.util.preferences.IPreferencesIds; import com.maile.jingcai.util.preferences.IPreferencesIds;
import com.maile.jingcai.util.preferences.PreferencesManager; import com.maile.jingcai.util.preferences.PreferencesManager;
import com.maile.jingcai.view.activity.ImageCropHeadActivity;
import com.maile.jingcai.view.activity.LoginActivity; import com.maile.jingcai.view.activity.LoginActivity;
import com.maile.jingcai.view.activity.MainActivity; import com.maile.jingcai.view.activity.MainActivity;
import com.maile.jingcai.view.iview.IWebView; import com.maile.jingcai.view.iview.IWebView;
...@@ -49,7 +57,7 @@ import rx.android.schedulers.AndroidSchedulers; ...@@ -49,7 +57,7 @@ import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers; import rx.schedulers.Schedulers;
public class SimpleCardFragment extends BaseFragment { public class SimpleCardFragment extends BaseFragment implements FragmentCompat.OnRequestPermissionsResultCallback {
@InjectView(R.id.webView_progress) @InjectView(R.id.webView_progress)
ProgressBar mWebViewProgress; ProgressBar mWebViewProgress;
@InjectView(R.id.webView) @InjectView(R.id.webView)
...@@ -276,10 +284,17 @@ public class SimpleCardFragment extends BaseFragment { ...@@ -276,10 +284,17 @@ public class SimpleCardFragment extends BaseFragment {
@JavascriptInterface @JavascriptInterface
public void editUserHeadImage(String uid){ public void editUserHeadImage(String uid){
Log.d("editUserHeadImage", "uid: " + uid); Log.d("editUserHeadImage", "uid: " + uid);
mIWebView.editUserImage(mWebView,currentURL,uid); mUid = uid;
requirePermission();
} }
} }
private static String mUid ;
@Override @Override
public void onDestroyView() { public void onDestroyView() {
super.onDestroyView(); super.onDestroyView();
...@@ -297,4 +312,60 @@ public class SimpleCardFragment extends BaseFragment { ...@@ -297,4 +312,60 @@ public class SimpleCardFragment extends BaseFragment {
} }
return false; return false;
} }
private void requirePermission(){
PermissionUtils.requestMultiPermissions(getActivity(), mPermissionGrant);
}
private PermissionUtils.PermissionGrant mPermissionGrant = new PermissionUtils.PermissionGrant() {
@Override
public void onPermissionGranted(int requestCode) {
switch (requestCode) {
case PermissionUtils.CODE_RECORD_AUDIO:
Toast.makeText(getActivity(), "Result Permission Grant CODE_RECORD_AUDIO", Toast.LENGTH_SHORT).show();
break;
case PermissionUtils.CODE_GET_ACCOUNTS:
Toast.makeText(getActivity(), "Result Permission Grant CODE_GET_ACCOUNTS", Toast.LENGTH_SHORT).show();
break;
case PermissionUtils.CODE_READ_PHONE_STATE:
Toast.makeText(getActivity(), "Result Permission Grant CODE_READ_PHONE_STATE", Toast.LENGTH_SHORT).show();
break;
case PermissionUtils.CODE_CALL_PHONE:
Toast.makeText(getActivity(), "Result Permission Grant CODE_CALL_PHONE", Toast.LENGTH_SHORT).show();
break;
case PermissionUtils.CODE_CAMERA:
Toast.makeText(getActivity(), "Result Permission Grant CODE_CAMERA", Toast.LENGTH_SHORT).show();
break;
case PermissionUtils.CODE_ACCESS_FINE_LOCATION:
Toast.makeText(getActivity(), "Result Permission Grant CODE_ACCESS_FINE_LOCATION", Toast.LENGTH_SHORT).show();
break;
case PermissionUtils.CODE_ACCESS_COARSE_LOCATION:
Toast.makeText(getActivity(), "Result Permission Grant CODE_ACCESS_COARSE_LOCATION", Toast.LENGTH_SHORT).show();
break;
case PermissionUtils.CODE_READ_EXTERNAL_STORAGE:
Toast.makeText(getActivity(), "Result Permission Grant CODE_READ_EXTERNAL_STORAGE", Toast.LENGTH_SHORT).show();
break;
case PermissionUtils.CODE_WRITE_EXTERNAL_STORAGE:
Toast.makeText(getActivity(), "Result Permission Grant CODE_WRITE_EXTERNAL_STORAGE", Toast.LENGTH_SHORT).show();
break;
case PermissionUtils.CODE_MULTI_PERMISSION:
mIWebView.editUserImage(mWebView,currentURL,mUid);
// Toast.makeText(MainActivity.this, "Result All Permission Grant", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
};
/**
* Callback received when a permissions request has been completed.
*/
@Override
public void onRequestPermissionsResult(final int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
PermissionUtils.requestPermissionsResult(getActivity(), requestCode, permissions, grantResults, mPermissionGrant);
}
} }
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="permissions">
<item>@string/permission_recode_audio_hint</item>
<item>@string/permission_get_accounts_hint</item>
<item>@string/permission_read_phone_hint</item>
<item>@string/permission_call_phone_hint</item>
<item>@string/permission_camera_hint</item>
<item>@string/permission_access_fine_location_hint</item>
<item>@string/permission_access_coarse_location_hint</item>
<item>@string/permission_read_external_hint</item>
<item>@string/permission_white_external_hint</item>
</string-array>
</resources>
...@@ -25,4 +25,14 @@ ...@@ -25,4 +25,14 @@
<string name="user_info_upload_head_success">上传头像成功</string> <string name="user_info_upload_head_success">上传头像成功</string>
<string name="user_info_upload_head_fail">取消头像设置</string> <string name="user_info_upload_head_fail">取消头像设置</string>
<string name="user_info_upload_head_server_fail">头像上传失败</string> <string name="user_info_upload_head_server_fail">头像上传失败</string>
<string name="permission_get_accounts_hint">没有此权限,无法开启这个功能,请开启权限。PERMISSION_GET_ACCOUNTS</string>
<string name="permission_read_phone_hint">没有此权限,无法开启这个功能,请开启权限。PERMISSION_READ_PHONE_STATE</string>
<string name="permission_call_phone_hint">没有此权限,无法开启这个功能,请开启权限。PERMISSION_CALL_PHONE</string>
<string name="permission_camera_hint">没有此权限,无法开启这个功能,请开启权限。PERMISSION_CAMERA</string>
<string name="permission_access_fine_location_hint">没有此权限,无法开启这个功能,请开启权限。PERMISSION_ACCESS_FINE_LOCATION</string>
<string name="permission_access_coarse_location_hint">没有此权限,无法开启这个功能,请开启权限。PERMISSION_ACCESS_COARSE_LOCATION</string>
<string name="permission_read_external_hint">没有此权限,无法开启这个功能,请开启权限。PERMISSION_READ_EXTERNAL_STORAGE</string>
<string name="permission_white_external_hint">没有此权限,无法开启这个功能,请开启权限。PERMISSION_WRITE_EXTERNAL_STORAGE</string>
<string name="permission_recode_audio_hint">没有此权限,无法开启这个功能,请开启权限。PERMISSION_RECORD_AUDIO</string>
</resources> </resources>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment