Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
唐文
/
AiyoZhuaWaWa
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
b43cb00b
authored
Nov 24, 2017
by
chengfengpiaopiao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
相册摄像头权限6.0
parent
c639a210
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
128 additions
and
10 deletions
.idea/modules.xml
app/build.gradle
app/src/main/AndroidManifest.xml
app/src/main/java/com/maile/jingcai/base/BaseApplication.java
app/src/main/java/com/maile/jingcai/util/PermissionUtils.java
app/src/main/java/com/maile/jingcai/view/activity/MainActivity.java
app/src/main/java/com/maile/jingcai/view/fragment/SimpleCardFragment.java
app/src/main/res/values/arrays.xml
app/src/main/res/values/strings.xml
.idea/modules.xml
View file @
b43cb00b
...
@@ -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>
...
...
app/build.gradle
View file @
b43cb00b
...
@@ -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'
}
}
app/src/main/AndroidManifest.xml
View file @
b43cb00b
...
@@ -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"
/>
...
...
app/src/main/java/com/maile/jingcai/base/BaseApplication.java
View file @
b43cb00b
...
@@ -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
()
;
}
}
/**
/**
...
...
app/src/main/java/com/maile/jingcai/util/PermissionUtils.java
0 → 100644
View file @
b43cb00b
This diff is collapsed.
Click to expand it.
app/src/main/java/com/maile/jingcai/view/activity/MainActivity.java
View file @
b43cb00b
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
);
}
}
}
app/src/main/java/com/maile/jingcai/view/fragment/SimpleCardFragment.java
View file @
b43cb00b
...
@@ -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
app/src/main/res/values/arrays.xml
0 → 100644
View file @
b43cb00b
<?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>
app/src/main/res/values/strings.xml
View file @
b43cb00b
...
@@ -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>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment