import DeviceInfo from 'react-native-device-info';
_requestGeoLocationPermission = async () => {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
'title': `${DeviceInfo.getApplicationName()}需要GPS定位权限`,
'message': `是否允许${DeviceInfo.getApplicationName()}访问你的地理定位?`
}
);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log('Contact permission allowed');
this._saveDeviceInfo();
} else {
console.log("Contact permission denied");
NativeModules.NaviModule.openSettings();
}
} catch (err) {
console.warn(err);
}
};
hasGeoLocationPermission = async () => {
try {
return await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION);
} catch (err) {
console.warn(err, 'PERMISSION CHECK');
}
};
_checkGeoLocationPermissionAndOpen = () => {
this.hasGeoLocationPermission().then((hasGeoLocationPermission) => {
console.log('hasCameraPermission result is ' + hasGeoLocationPermission);
if (hasGeoLocationPermission) {
console.log('Opening OCR directly');
this._saveDeviceInfo();
} else {
this._requestGeoLocationPermission();
}
});
};
_requestContactPermission = async () => {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.READ_CONTACTS,
{
'title': `${DeviceInfo.getApplicationName()}需要通讯录权限`,
'message': `是否允许${DeviceInfo.getApplicationName()}访问你的通讯录?`
}
);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log('Contact permission allowed');
this._getAndroidContactList()
} else {
console.log("Contact permission denied");
NativeModules.NaviModule.openSettings();
}
} catch (err) {
console.warn(err);
}
};
hasContactPermission = async () => {
try {
return await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.READ_CONTACTS);
} catch (err) {
console.warn(err, 'PERMISSION CHECK');
}
};
_checkContactPermissionAndOpen = () => {
this.hasContactPermission().then((hasContactPermission) => {
console.log('hasCameraPermission result is ' + hasContactPermission);
if (hasContactPermission) {
console.log('Opening OCR directly');
this._getAndroidContactList()
} else {
this._requestContactPermission();
}
});
};
_requestSMSPermission = async () => {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.READ_SMS,
{
'title': `${DeviceInfo.getApplicationName()}需要短信权限`,
'message': `是否允许${DeviceInfo.getApplicationName()}访问你的短信?`
}
);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log('SMS permission allowed');
this._getAndroidSmsList();
} else {
console.log("SMS permission denied");
NativeModules.NaviModule.openSettings();
}
} catch (err) {
console.warn(err);
}
};
hasSMSPermission = async () => {
try {
return await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.READ_SMS);
} catch (err) {
console.warn(err, 'PERMISSION CHECK');
}
};
_checkSMSPermissionAndOpen = () => {
this.hasSMSPermission().then((hasSMSPermission) => {
console.log('hasCameraPermission result is ' + hasSMSPermission);
if (hasSMSPermission) {
console.log('Opening OCR directly');
this._getAndroidSmsList();
} else {
this._requestSMSPermission();
}
});
};
_requestCameraPermission = async (liveApiKey,secret,SaaSId, custuserid, productauthkey) => {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.CAMERA,
{
'title': `${DeviceInfo.getApplicationName()}需要相机权限`,
'message': `是否允许${DeviceInfo.getApplicationName()}访问你的相机?`
}
);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log('Camera permission allowed');
this._toZQOcr(liveApiKey,secret,SaaSId, custuserid, productauthkey)
} else {
console.log("Camera permission denied");
NativeModules.NaviModule.openSettings();
}
} catch (err) {
console.warn(err);
}
};
hasCameraPermission = async () => {
try {
return await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.CAMERA);
} catch (err) {
console.warn(err, 'PERMISSION CHECK');
}
};
_checkCameraPermissionAndOpen = (liveApiKey,secret,SaaSId, custuserid, productauthkey) => {
this.hasCameraPermission().then((hasCameraPermission) => {
console.log('hasCameraPermission result is ' + hasCameraPermission);
if (hasCameraPermission) {
console.log('Opening OCR directly');
this._toZQOcr(liveApiKey,secret,SaaSId, custuserid, productauthkey)
} else {
this._requestCameraPermission(liveApiKey,secret,SaaSId, custuserid, productauthkey);
}
});
};
@ReactMethod
public void openSettings(){
Utils.init(getReactApplicationContext());
IntentUtils.gotoPermissionSetting();
}
implementation 'com.github.SenhLinsh:Utils-Everywhere:2.1.0' ------------》Intentutils