Commit b43cb00b by chengfengpiaopiao

相册摄像头权限6.0

parent c639a210
......@@ -2,9 +2,7 @@
<project version="4">
<component name="ProjectModuleManager">
<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://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$/multi-image-selector/multi-image-selector.iml" filepath="$PROJECT_DIR$/multi-image-selector/multi-image-selector.iml" />
</modules>
......
......@@ -105,6 +105,8 @@ dependencies {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.0.0'
compile "com.android.support:support-v13:23.1.0"
testCompile 'junit:junit:4.12'
compile "com.jakewharton:butterknife:6.1.0"
......@@ -126,4 +128,5 @@ dependencies {
compile 'com.meituan.android.walle:library:1.1.5' //walle
compile project(path: ':multi-image-selector')
compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.3@aar'
}
......@@ -13,6 +13,7 @@
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<application
android:name=".DuoBaoApplication"
......@@ -55,7 +56,7 @@
android:name=".view.activity.MainActivity"
android:exported="true"
android:launchMode="singleTask"
android:theme="@android:style/Theme.Translucent"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
......
......@@ -20,6 +20,7 @@ import com.umeng.analytics.MobclickAgent;
public class BaseApplication extends Application{
public static IWXAPI sApi;
protected static BaseApplication sInstance;
private Context mApplicationContext;
@Override
public void onCreate() {
......@@ -69,7 +70,7 @@ public class BaseApplication extends Application{
}
public static Context getAppContext() {
return sInstance;
return getAppContext();
}
/**
......
package com.maile.jingcai.view.activity;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
......@@ -7,6 +8,8 @@ import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
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.FragmentActivity;
import android.support.v4.app.FragmentManager;
......@@ -18,6 +21,7 @@ import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.webkit.WebView;
import android.widget.Toast;
import com.flyco.tablayout.CommonTabLayout;
import com.flyco.tablayout.listener.CustomTabEntity;
......@@ -34,12 +38,14 @@ import com.maile.jingcai.util.CameraUtil;
import com.maile.jingcai.util.DrawUtil;
import com.maile.jingcai.util.ImageUtils;
import com.maile.jingcai.util.NetUtils;
import com.maile.jingcai.util.PermissionUtils;
import com.maile.jingcai.util.PublicUtils;
import com.maile.jingcai.util.preferences.IPreferencesIds;
import com.maile.jingcai.util.preferences.PreferencesManager;
import com.maile.jingcai.view.ViewFindUtils;
import com.maile.jingcai.view.fragment.SimpleCardFragment;
import com.maile.jingcai.view.iview.IWebView;
import com.tbruyelle.rxpermissions2.RxPermissions;
import com.umeng.analytics.MobclickAgent;
import java.io.File;
......@@ -58,7 +64,7 @@ import rx.schedulers.Schedulers;
* 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; // 修改成功
private static final int SEX_TYPE_MALE = 1;
private static final int SEX_TYPE_FEMALE = 2;
......@@ -382,15 +388,28 @@ public class MainActivity extends FragmentActivity implements IWebView {
//mPicSelectView.show(true);拉起activity
Intent intent;
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);
startActivityForResult(intentHead, IMAGE_HEAD);
} else {
intent = CameraUtil.cropImageUri();
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;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.RequiresApi;
import android.support.v13.app.FragmentCompat;
import android.support.v4.app.Fragment;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
......@@ -23,15 +27,19 @@ import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.Toast;
import com.maile.jingcai.R;
import com.maile.jingcai.base.BaseApplication;
import com.maile.jingcai.base.BaseFragment;
import com.maile.jingcai.module.WrapperRspEntity;
import com.maile.jingcai.module.api.LoginApiService;
import com.maile.jingcai.module.net.RetrofitManager;
import com.maile.jingcai.util.PermissionUtils;
import com.maile.jingcai.util.PublicUtils;
import com.maile.jingcai.util.preferences.IPreferencesIds;
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.MainActivity;
import com.maile.jingcai.view.iview.IWebView;
......@@ -49,7 +57,7 @@ import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
public class SimpleCardFragment extends BaseFragment {
public class SimpleCardFragment extends BaseFragment implements FragmentCompat.OnRequestPermissionsResultCallback {
@InjectView(R.id.webView_progress)
ProgressBar mWebViewProgress;
@InjectView(R.id.webView)
......@@ -276,10 +284,17 @@ public class SimpleCardFragment extends BaseFragment {
@JavascriptInterface
public void editUserHeadImage(String uid){
Log.d("editUserHeadImage", "uid: " + uid);
mIWebView.editUserImage(mWebView,currentURL,uid);
mUid = uid;
requirePermission();
}
}
private static String mUid ;
@Override
public void onDestroyView() {
super.onDestroyView();
......@@ -297,4 +312,60 @@ public class SimpleCardFragment extends BaseFragment {
}
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 @@
<string name="user_info_upload_head_success">上传头像成功</string>
<string name="user_info_upload_head_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>
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