函数方法备忘

//开启悬浮窗的Service  
Intent floatWinIntent;
/** 
* 6.0请求用户给予悬浮窗的权限 
*/  
public void askForPermission() {  
if (!Settings.canDrawOverlays(this)) {  
Toast.makeText(MainActivity.this, "当前无权限,请授权!", Toast.LENGTH_SHORT).show();  
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,  
Uri.parse("package:" + getPackageName()));  
startActivityForResult(intent, 1234);  
} else {  
startService(floatWinIntent);  
}  
}  


/** 
* 6.0以下
* 判断 悬浮窗口权限是否打开 

* @param context 
* @return true 允许  false禁止 
*/  
public static boolean getAppOps(Context context) {  
try {  
Object object = context.getSystemService("appops");  
if (object == null) {  
return false;  
}  
Class localClass = object.getClass();  
Class[] arrayOfClass = new Class[3];  
arrayOfClass[0] = Integer.TYPE;  
arrayOfClass[1] = Integer.TYPE;  
arrayOfClass[2] = String.class;  
Method method = localClass.getMethod("checkOp", arrayOfClass);  
if (method == null) {  
return false;  
}  
Object[] arrayOfObject1 = new Object[3];  
arrayOfObject1[0] = Integer.valueOf(24);  
arrayOfObject1[1] = Integer.valueOf(Binder.getCallingUid());  
arrayOfObject1[2] = context.getPackageName();  
int m = ((Integer) method.invoke(object, arrayOfObject1)).intValue();  
return m == AppOpsManager.MODE_ALLOWED;  
} catch (Exception ex) {  


}  
return false;  

}  




/**
* 判断是否有Accessibility 权限设置
*    <service
            android:name="com.fjsoft.wsl.accessibilityservice.MyAccessibility"
            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" >
            
* com.fjsoft.wsl.accessibilityservice/com.fjsoft.wsl.accessibilityservice.MyAccessibility=PackageName/serviceName
* b
* @param mContext
* @return
*/
public static boolean isAccessibilitySettingsOn(Context mContext) {
int accessibilityEnabled = 0;
final String service = "com.fjsoft.wsl.accessibilityservice/com.fjsoft.wsl.accessibilityservice.MyAccessibility";
boolean accessibilityFound = false;
try {
accessibilityEnabled = Settings.Secure.getInt(
mContext.getApplicationContext().getContentResolver(),
android.provider.Settings.Secure.ACCESSIBILITY_ENABLED);
} catch (SettingNotFoundException e) {
}
TextUtils.SimpleStringSplitter mStringColonSplitter = new TextUtils.SimpleStringSplitter(':');


if (accessibilityEnabled == 1) {
String settingValue = Settings.Secure.getString(
mContext.getApplicationContext().getContentResolver(),
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
if (settingValue != null) {
TextUtils.SimpleStringSplitter splitter = mStringColonSplitter;
splitter.setString(settingValue);
while (splitter.hasNext()) {
String accessabilityService = splitter.next();


if (accessabilityService.equalsIgnoreCase(service)) {
return true;
}
}
}
} else {
}


return accessibilityFound;      
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值