Commit e371b4b8 by sikang

Merge branch 'master' of http://47.100.14.92:8929/sikang/lib_base

update script
parents 54aab50c 15de9484
...@@ -62,5 +62,6 @@ else ...@@ -62,5 +62,6 @@ else
echo "未知的打包方式" echo "未知的打包方式"
fi fi
gradlew clean
cd lib_base/script/garble/ cd lib_base/script/garble/
./reset_name.sh ./reset_name.sh
...@@ -3,9 +3,14 @@ ...@@ -3,9 +3,14 @@
package="tech.starwin"> package="tech.starwin">
<!--写入SD卡--> <!--写入SD卡-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:node="remove" />
<!--读取SD卡--> <!--读取SD卡-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
tools:node="remove" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--相机--> <!--相机-->
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<!--读取联系人信息--> <!--读取联系人信息-->
...@@ -40,20 +45,20 @@ ...@@ -40,20 +45,20 @@
<!-- TODO - Firebase配置--> <!-- TODO - Firebase配置-->
<!--FireBase 推送--> <!--FireBase 推送-->
<!--<meta-data--> <!--<meta-data-->
<!--android:name="com.google.firebase.messaging.default_notification_channel_id"--> <!--android:name="com.google.firebase.messaging.default_notification_channel_id"-->
<!--android:value="${CHANNEL_NAME}" />--> <!--android:value="${CHANNEL_NAME}" />-->
<!--<meta-data--> <!--<meta-data-->
<!--android:name="firebase_messaging_auto_init_enabled"--> <!--android:name="firebase_messaging_auto_init_enabled"-->
<!--android:value="false" />--> <!--android:value="false" />-->
<!--<service android:name="com.common.service.MsgHandleService">--> <!--<service android:name="com.common.service.MsgHandleService">-->
<!--<intent-filter>--> <!--<intent-filter>-->
<!--<action android:name="com.google.firebase.MESSAGING_EVENT" />--> <!--<action android:name="com.google.firebase.MESSAGING_EVENT" />-->
<!--</intent-filter>--> <!--</intent-filter>-->
<!--</service>--> <!--</service>-->
<!--<service android:name="com.common.service.MsgInstanceIdService">--> <!--<service android:name="com.common.service.MsgInstanceIdService">-->
<!--<intent-filter>--> <!--<intent-filter>-->
<!--<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />--> <!--<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />-->
<!--</intent-filter>--> <!--</intent-filter>-->
<!--</service>--> <!--</service>-->
<!--AutoSize--> <!--AutoSize-->
...@@ -75,69 +80,48 @@ ...@@ -75,69 +80,48 @@
android:name="com.facebook.accountkit.ClientToken" android:name="com.facebook.accountkit.ClientToken"
android:value="@string/ACCOUNT_KIT_CLIENT_TOKEN" /> android:value="@string/ACCOUNT_KIT_CLIENT_TOKEN" />
<activity <activity android:name="com.facebook.accountkit.ui.AccountKitActivity" />
android:name="com.facebook.accountkit.ui.AccountKitActivity"
/>
<!--地区选择--> <!--地区选择-->
<activity <activity android:name="com.common.activity.RegionActivity" />
android:name="com.common.activity.RegionActivity"
/>
<!-- Zendesk --> <!-- Zendesk -->
<activity <activity
android:name="com.common.activity.RefreshDeskActivity" android:name="com.common.activity.RefreshDeskActivity"
android:windowSoftInputMode="adjustResize" /> android:windowSoftInputMode="adjustResize" />
<activity <activity android:name="com.common.activity.RefreshDeskListActivity" />
android:name="com.common.activity.RefreshDeskListActivity"
/>
<!--拍照--> <!--拍照-->
<activity <activity android:name="com.common.activity.TakePhotoActivity" />
android:name="com.common.activity.TakePhotoActivity"
/>
<!--还款指南--> <!--还款指南-->
<activity <activity android:name="com.common.activity.RepaymentGuideActivity" />
android:name="com.common.activity.RepaymentGuideActivity"
/>
<!--Web--> <!--Web-->
<activity <activity android:name="com.common.activity.WebActivity" />
android:name="com.common.activity.WebActivity"
/>
<!--注册协议和隐私政策--> <!--注册协议和隐私政策-->
<activity <activity
android:name="com.common.activity.AgreementPolicyActivity" android:name="com.common.activity.AgreementPolicyActivity"
android:launchMode="standard" android:launchMode="standard" />
/>
<!--帮助中心--> <!--帮助中心-->
<activity <activity android:name="com.common.activity.HelpCenterActivity" />
android:name="com.common.activity.HelpCenterActivity"
/>
<!--关于我们--> <!--关于我们-->
<activity <activity android:name="com.common.activity.AboutUsActivity" />
android:name="com.common.activity.AboutUsActivity"
/>
<!--活动中心--> <!--活动中心-->
<activity <activity android:name="com.common.activity.ActivityCenter" />
android:name="com.common.activity.ActivityCenter"
/>
<!--活动中心--> <!--活动中心-->
<activity <activity android:name="com.common.activity.MessageListActivity" />
android:name="com.common.activity.MessageListActivity"
/>
<!--<receiver--> <!--<receiver-->
<!--tools:node="remove"--> <!--tools:node="remove"-->
<!--android:name="com.kochava.base.ReferralReceiver">--> <!--android:name="com.kochava.base.ReferralReceiver">-->
<!--</receiver>--> <!--</receiver>-->
<receiver <receiver
......
...@@ -12,6 +12,7 @@ import android.widget.ImageView; ...@@ -12,6 +12,7 @@ import android.widget.ImageView;
import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
import java.io.File; import java.io.File;
import java.io.FileOutputStream;
import tech.starwin.R; import tech.starwin.R;
...@@ -20,6 +21,8 @@ import com.common.base.BaseActivity; ...@@ -20,6 +21,8 @@ import com.common.base.BaseActivity;
import tech.starwin.impl.OnNoShakeClickListener; import tech.starwin.impl.OnNoShakeClickListener;
import tech.starwin.utils.BitmapUtils; import tech.starwin.utils.BitmapUtils;
import tech.starwin.utils.FileUtils; import tech.starwin.utils.FileUtils;
import tech.starwin.utils.PreferencesManager;
import tech.starwin.utils.SPDataProvider;
import tech.starwin.utils.context_utils.ActivityJumper; import tech.starwin.utils.context_utils.ActivityJumper;
import tech.starwin.utils.context_utils.EasyActivityResult; import tech.starwin.utils.context_utils.EasyActivityResult;
import tech.starwin.utils.ui_utils.QMUIHelper; import tech.starwin.utils.ui_utils.QMUIHelper;
...@@ -100,6 +103,17 @@ public class TakePhotoActivity extends BaseActivity { ...@@ -100,6 +103,17 @@ public class TakePhotoActivity extends BaseActivity {
public void onEventClick(View v) { public void onEventClick(View v) {
if (v.getId() == R.id.button_shoot) { if (v.getId() == R.id.button_shoot) {
cameraView.captureImage(bitmap -> { cameraView.captureImage(bitmap -> {
// long pix_size = bitmap.getWidth() * bitmap.getHeight();
// float scale = 720 * 1080 / (float) pix_size;
// BitmapUtils.scaleBitmap(bitmap, scale);
// if(TextUtils.equals(type, PhotoType.KTP.name())){
// SPDataProvider.saveKTPImage(bitmap);
// }else if(TextUtils.equals(type, PhotoType.WORK_CARD.name())){
// SPDataProvider.saveWorkImage(bitmap);
// }
// setResult(RESULT_OK);
// finish();
File image = FileUtils.getImageFile(getApplicationContext(), KTP_IMAGE); File image = FileUtils.getImageFile(getApplicationContext(), KTP_IMAGE);
if (!image.exists()) { if (!image.exists()) {
image.mkdir(); image.mkdir();
...@@ -124,14 +138,6 @@ public class TakePhotoActivity extends BaseActivity { ...@@ -124,14 +138,6 @@ public class TakePhotoActivity extends BaseActivity {
setResult(RESULT_OK, intent); setResult(RESULT_OK, intent);
finish(); finish();
// try {
// FileOutputStream outputStream = new FileOutputStream(image.getPath());
// outputStream.write(data);
// outputStream.close();
//
// } catch (java.io.IOException e) {
// e.printStackTrace();
// }
}); });
} else if (v.getId() == R.id.button_cancel) { } else if (v.getId() == R.id.button_cancel) {
setResult(RESULT_CANCELED); setResult(RESULT_CANCELED);
......
package tech.starwin.mvp.presenter; package tech.starwin.mvp.presenter;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -13,11 +14,8 @@ import java.util.List; ...@@ -13,11 +14,8 @@ import java.util.List;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.ObservableSource; import io.reactivex.ObservableSource;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function; import io.reactivex.functions.Function;
import io.reactivex.functions.Predicate; import okhttp3.MultipartBody;
import io.reactivex.schedulers.Schedulers;
import tech.starwin.LibConfig; import tech.starwin.LibConfig;
import tech.starwin.base.BasePresenter; import tech.starwin.base.BasePresenter;
import tech.starwin.constants.TrackEvent; import tech.starwin.constants.TrackEvent;
...@@ -28,9 +26,8 @@ import com.common.bean.BasicAck; ...@@ -28,9 +26,8 @@ import com.common.bean.BasicAck;
import com.common.bean.OcrResultBean; import com.common.bean.OcrResultBean;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import tech.starwin.utils.LogUtils;
import tech.starwin.utils.LoginManager; import tech.starwin.utils.LoginManager;
import tech.starwin.utils.MultipartBodyMaker; import tech.starwin.network.tools.MultipartBodyMaker;
import tech.starwin.utils.PreferencesManager; import tech.starwin.utils.PreferencesManager;
import tech.starwin.utils.TrackEventHelper; import tech.starwin.utils.TrackEventHelper;
import tech.starwin.utils.context_utils.AppInfoUtils; import tech.starwin.utils.context_utils.AppInfoUtils;
...@@ -48,7 +45,21 @@ public class UploadPresenter extends BasePresenter<UploadApi> { ...@@ -48,7 +45,21 @@ public class UploadPresenter extends BasePresenter<UploadApi> {
* 身份证ocr识别 * 身份证ocr识别
*/ */
public void identityOcr(final String action, @NonNull File file) { public void identityOcr(final String action, @NonNull File file) {
handleRequest(apiService.identityOcr(MultipartBodyMaker.makeSimplePart("file", file), LoginManager.get().getToken()), identityOcr(action, MultipartBodyMaker.makeSimplePart("file", file));
}
/**
* 身份证ocr识别
*/
public void identityOcr(final String action, @NonNull Bitmap bitmap) {
identityOcr(action, MultipartBodyMaker.makeSimplePart("file", "ktp_img", bitmap, Bitmap.CompressFormat.JPEG));
}
/**
* 身份证ocr识别,直接使用Bitmap
*/
private void identityOcr(final String action, MultipartBody.Part filePart) {
handleRequest(apiService.identityOcr(filePart, LoginManager.get().getToken()),
new HttpObserver<OcrResultBean>() { new HttpObserver<OcrResultBean>() {
@Override @Override
public void onStart() { public void onStart() {
......
...@@ -2,6 +2,7 @@ package tech.starwin.mvp.presenter; ...@@ -2,6 +2,7 @@ package tech.starwin.mvp.presenter;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.graphics.Bitmap;
import android.text.TextUtils; import android.text.TextUtils;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
...@@ -17,6 +18,7 @@ import io.reactivex.functions.Function; ...@@ -17,6 +18,7 @@ import io.reactivex.functions.Function;
import io.reactivex.functions.Function4; import io.reactivex.functions.Function4;
import io.reactivex.functions.Predicate; import io.reactivex.functions.Predicate;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import okhttp3.MultipartBody;
import okhttp3.ResponseBody; import okhttp3.ResponseBody;
import tech.starwin.base.BasePresenter; import tech.starwin.base.BasePresenter;
import tech.starwin.constants.ActionEnum; import tech.starwin.constants.ActionEnum;
...@@ -44,7 +46,7 @@ import com.common.bean.UserBean; ...@@ -44,7 +46,7 @@ import com.common.bean.UserBean;
import tech.starwin.network.Gateway; import tech.starwin.network.Gateway;
import tech.starwin.network.ServiceGenerator; import tech.starwin.network.ServiceGenerator;
import tech.starwin.utils.LoginManager; import tech.starwin.utils.LoginManager;
import tech.starwin.utils.MultipartBodyMaker; import tech.starwin.network.tools.MultipartBodyMaker;
import tech.starwin.utils.PreferencesManager; import tech.starwin.utils.PreferencesManager;
import tech.starwin.utils.TrackEventHelper; import tech.starwin.utils.TrackEventHelper;
...@@ -472,10 +474,26 @@ public class UserPresenter extends BasePresenter<UserApi> { ...@@ -472,10 +474,26 @@ public class UserPresenter extends BasePresenter<UserApi> {
} }
public void submitEmploymentInfo(String action, File workCardImage, EmploymentServerBean employmentBean) {
MultipartBody.Part part = null;
if (workCardImage != null && workCardImage.exists()) {
part = MultipartBodyMaker.makeSimplePart("file", workCardImage);
}
submitEmploymentInfo(action, part, employmentBean);
}
// public void submitEmploymentInfo(String action, Bitmap bitmap, EmploymentServerBean employmentBean) {
// MultipartBody.Part part = null;
// if (bitmap != null) {
// part = MultipartBodyMaker.makeSimplePart("file", "word_card", bitmap, Bitmap.CompressFormat.JPEG);
// }
// submitEmploymentInfo(action, part, employmentBean);
// }
/** /**
* 提交工作信息 * 提交工作信息
*/ */
public void submitEmploymentInfo(String action, File workCardImage, EmploymentServerBean employmentBean) { private void submitEmploymentInfo(String action, MultipartBody.Part part, EmploymentServerBean employmentBean) {
Observable<ResponseBody> info = ServiceGenerator.getService(UserApi.class) Observable<ResponseBody> info = ServiceGenerator.getService(UserApi.class)
.submitEmploymentInfo(employmentBean.getCompanyName(), .submitEmploymentInfo(employmentBean.getCompanyName(),
employmentBean.getCompanyProvince(), employmentBean.getCompanyProvince(),
...@@ -488,8 +506,8 @@ public class UserPresenter extends BasePresenter<UserApi> { ...@@ -488,8 +506,8 @@ public class UserPresenter extends BasePresenter<UserApi> {
employmentBean.getSalary(), employmentBean.getSalary(),
LoginManager.get().getToken()); LoginManager.get().getToken());
if (workCardImage != null && workCardImage.exists()) { if (part != null) {
Observable<ResponseBody> upload = getService(UploadApi.class).uploadPhoto(MultipartBodyMaker.makeSimplePart("file", workCardImage), "EMPLOYMENT_PHOTO", LoginManager.get().getToken()); Observable<ResponseBody> upload = getService(UploadApi.class).uploadPhoto(part, "EMPLOYMENT_PHOTO", LoginManager.get().getToken());
handleRequest(action, Observable.zip(info, upload, new BiFunction<ResponseBody, ResponseBody, Boolean>() { handleRequest(action, Observable.zip(info, upload, new BiFunction<ResponseBody, ResponseBody, Boolean>() {
@Override @Override
...@@ -579,7 +597,7 @@ public class UserPresenter extends BasePresenter<UserApi> { ...@@ -579,7 +597,7 @@ public class UserPresenter extends BasePresenter<UserApi> {
/** /**
* 获取其他照片 * 获取其他照片
* */ */
public void getPhotoList(String action) { public void getPhotoList(String action) {
handleRequest(action, apiService.getPhotoList()); handleRequest(action, apiService.getPhotoList());
} }
......
package tech.starwin.network.tools;
import android.graphics.Bitmap;
import java.io.IOException;
import javax.annotation.Nullable;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import okio.BufferedSink;
/**
* Created by SiKang on 2019/4/22.
*/
public class BitmapRequestBody extends RequestBody {
private Bitmap bitmap;
private Bitmap.CompressFormat format;
public BitmapRequestBody(Bitmap bitmap, Bitmap.CompressFormat format) {
this.bitmap = bitmap;
this.format = format;
}
@Nullable
@Override
public MediaType contentType() {
if (format == Bitmap.CompressFormat.JPEG) {
return MediaType.parse("image/jpeg");
} else if (format == Bitmap.CompressFormat.PNG) {
return MediaType.parse("image/png");
} else if (format == Bitmap.CompressFormat.WEBP) {
return MediaType.parse("image/webp");
}
return null;
}
@Override
public void writeTo(BufferedSink sink) throws IOException {
bitmap.compress(format, 100, sink.outputStream());
}
}
package tech.starwin.utils; package tech.starwin.network.tools;
import android.graphics.Bitmap;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
...@@ -6,6 +8,7 @@ import java.util.List; ...@@ -6,6 +8,7 @@ import java.util.List;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.MultipartBody; import okhttp3.MultipartBody;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import tech.starwin.utils.FileUtils;
/** /**
* Created by SiKang on 2018/9/28. * Created by SiKang on 2018/9/28.
...@@ -35,6 +38,11 @@ public class MultipartBodyMaker { ...@@ -35,6 +38,11 @@ public class MultipartBodyMaker {
return MultipartBody.Part.createFormData(name, file.getName(), requestFile); return MultipartBody.Part.createFormData(name, file.getName(), requestFile);
} }
public static MultipartBody.Part makeSimplePart(String name, String fileName, Bitmap bitmap, Bitmap.CompressFormat format) {
RequestBody requestFile = new BitmapRequestBody(bitmap, format);
return MultipartBody.Part.createFormData(name, fileName, requestFile);
}
public static MultipartBody.Part makeSimplePart(String name, String value) { public static MultipartBody.Part makeSimplePart(String name, String value) {
return MultipartBody.Part.createFormData(name, value); return MultipartBody.Part.createFormData(name, value);
} }
...@@ -78,6 +86,5 @@ public class MultipartBodyMaker { ...@@ -78,6 +86,5 @@ public class MultipartBodyMaker {
public MultipartBodyMaker build() { public MultipartBodyMaker build() {
return new MultipartBodyMaker(builder); return new MultipartBodyMaker(builder);
} }
} }
} }
...@@ -6,8 +6,10 @@ import android.graphics.Matrix; ...@@ -6,8 +6,10 @@ import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.media.ExifInterface; import android.media.ExifInterface;
import android.util.Base64;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.FileOutputStream; import java.io.FileOutputStream;
...@@ -61,6 +63,20 @@ public class BitmapUtils { ...@@ -61,6 +63,20 @@ public class BitmapUtils {
return resizedBitmap; return resizedBitmap;
} }
/**
* 缩放图片到指定大小(保持比例)
*/
public static Bitmap scaleBitmap(Bitmap bitmap, float scale) {
if (scale == 0 || scale == 1) {
return bitmap;
}
Matrix matrix = new Matrix();
matrix.postScale(scale, scale);
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
bitmap.getHeight(), matrix, true);
return resizedBitmap;
}
/** /**
* 从SD卡中加载图片中心区域 * 从SD卡中加载图片中心区域
...@@ -267,6 +283,53 @@ public class BitmapUtils { ...@@ -267,6 +283,53 @@ public class BitmapUtils {
/** /**
* bitmap转为base64
*
* @param bitmap
* @return
*/
public static String bitmapToBase64(Bitmap bitmap) {
String result = null;
ByteArrayOutputStream baos = null;
try {
if (bitmap != null) {
baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
baos.flush();
baos.close();
byte[] bitmapBytes = baos.toByteArray();
result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (baos != null) {
baos.flush();
baos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
/**
* base64转为bitmap
*
* @param base64Data
* @return
*/
public static Bitmap base64ToBitmap(String base64Data) {
byte[] bytes = Base64.decode(base64Data, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}
/**
* Drawable转Bitmap * Drawable转Bitmap
*/ */
public static Bitmap drawableToBmp(Drawable drawable) { public static Bitmap drawableToBmp(Drawable drawable) {
......
...@@ -62,7 +62,8 @@ public class FileUtils { ...@@ -62,7 +62,8 @@ public class FileUtils {
* 创建图片文件 * 创建图片文件
*/ */
public static File getImageFile(Context context, String fileName) { public static File getImageFile(Context context, String fileName) {
File file = new File(getAppDir(context).getAbsoluteFile() + IMAGE_CACHE); File file = new File(context.getExternalFilesDir(null).getAbsoluteFile() + IMAGE_CACHE);
// File file = new File(getAppDir(context).getAbsoluteFile() + IMAGE_CACHE);
if (!file.exists()) { if (!file.exists()) {
file.mkdirs(); file.mkdirs();
} }
......
package tech.starwin.utils;
import android.graphics.Bitmap;
import android.text.TextUtils;
/**
* Created by SiKang on 2019/4/22.
*/
public class SPDataProvider {
//
// /**
// * 存取KTP照片
// */
// public static void saveKTPImage(Bitmap bitmap) {
// PreferencesManager.get().saveData("ktp_image", BitmapUtils.bitmapToBase64(bitmap));
// }
// public static Bitmap getKTPImage() {
// String bitmapStr = PreferencesManager.get().getString("ktp_image", "");
// return TextUtils.isEmpty(bitmapStr) ? null : BitmapUtils.base64ToBitmap(bitmapStr);
// }
//
// /**
// * 存取工作证照片
// */
// public static void saveWorkImage(Bitmap bitmap) {
// PreferencesManager.get().saveData("work_card_image", BitmapUtils.bitmapToBase64(bitmap));
// }
// public static Bitmap getWorkImage() {
// String bitmapStr = PreferencesManager.get().getString("work_card_image", "");
// return TextUtils.isEmpty(bitmapStr) ? null : BitmapUtils.base64ToBitmap(bitmapStr);
// }
}
...@@ -56,10 +56,10 @@ public class PermissionsHelper { ...@@ -56,10 +56,10 @@ public class PermissionsHelper {
Manifest.permission.READ_CONTACTS, Manifest.permission.READ_CONTACTS,
Manifest.permission.READ_CALL_LOG, Manifest.permission.READ_CALL_LOG,
Manifest.permission.READ_SMS, Manifest.permission.READ_SMS,
Manifest.permission.READ_EXTERNAL_STORAGE, // Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE // Manifest.permission.WRITE_EXTERNAL_STORAGE
// Manifest.permission.ACCESS_COARSE_LOCATION,//粗精度定位 Manifest.permission.ACCESS_COARSE_LOCATION,//粗精度定位
// Manifest.permission.ACCESS_FINE_LOCATION//卫星定位 Manifest.permission.ACCESS_FINE_LOCATION//卫星定位
// Manifest.permission.READ_PHONE_STATE // Manifest.permission.READ_PHONE_STATE
}; };
...@@ -70,8 +70,8 @@ public class PermissionsHelper { ...@@ -70,8 +70,8 @@ public class PermissionsHelper {
Manifest.permission.READ_CONTACTS, Manifest.permission.READ_CONTACTS,
// Manifest.permission.READ_CALL_LOG, // Manifest.permission.READ_CALL_LOG,
// Manifest.permission.READ_SMS, // Manifest.permission.READ_SMS,
Manifest.permission.READ_EXTERNAL_STORAGE, // Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE // Manifest.permission.WRITE_EXTERNAL_STORAGE
// Manifest.permission.ACCESS_COARSE_LOCATION,//粗精度定位 // Manifest.permission.ACCESS_COARSE_LOCATION,//粗精度定位
// Manifest.permission.ACCESS_FINE_LOCATION//卫星定位 // Manifest.permission.ACCESS_FINE_LOCATION//卫星定位
// Manifest.permission.READ_PHONE_STATE // Manifest.permission.READ_PHONE_STATE
......
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 to comment