or函数判断参数是否为错误值1913应用iseven函数判断数值是否为偶数1924应用islogical函数判断参数是否为逻辑值1935应用isna函数判断错误值是否为#n/a1946应用isnontext函数判断参数是否为非字符串1957应用isnumber函数判断参数是否为数字1968应用isodd函数判断数值是否为奇数1979应用isref函数判断参数是否为引用19810应用istext函数。判断日期是否合法,可以先判断年月日是否有小于0的值,月和日是否有超出最大值12和31 ,如果通过此判断合法,再判断是否时闰年,如果时闰年,则判断二月份是否满足要求,闰年二月份不能超过29天,平年二月份不能超过28天。下面是部分- (void)_displayasync:(bool)async绘制的代码,主要是一些逻辑判断以及绘制函数,在异步执行之前通过yyasynclayergetdisplayqueue创建的队列,这里通过yysentinel判断当前的value是否等于之前的值,如果不相等,说明绘制任务被取消了,绘制过程会多次判断是否取消,如果是则return,保证被取消的任务能及时退出,如果绘制完毕则设置图片到layer.contents。
public class MainActivity extends Activity {
@Override
protected void onResume() {
super.onResume();
final String myPackageName = getPackageName();
if (!Telephony.Sms.getDefaultSmsPackage(this).equals(myPackageName)) {
// App is not default.
// Show the "not currently set as the default SMS app" interface
View viewGroup = findViewById(R.id.ll_not_default_app);
viewGroup.setVisibility(View.VISIBLE);
// Set up a button that allows the user to change the default SMS app
View button = findViewById(R.id.btn_change_default_app);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, myPackageName);
startActivity(intent);
}
});
} else {
// App is the default.
// Hide the "not currently set as the default SMS app" interface
View viewGroup = findViewById(R.id.ll_not_default_app);
viewGroup.setVisibility(View.GONE);
}
}


以上源码下载地址:https://github.com/wenzhiming/520sms

在很多手机卫士或者通讯卫士里面都有一项实用的功能,那就是拦截已加入黑名单之中的电话,那么这个功能是如何实现的呢?现在就让我们来看看吧。
补充1,来电的时候不能能显示这个号码是黑名单,也不不拦截,来电界面也是常规的白色,不是诈骗电话那种红色,但是挂机后的通话记录里能显示是黑名单或者诈骗电话。用户只要使用手机内置的silent phone(来电)、silent text(短信)和silent world的通讯应用软件,就可以在加密的环境下进行通话和发送短信,就算有人拦截通讯信号,也无法实际内容。拦截电话,拦截电话号码,拦截手机,拦截短信,拦截彩信,来电防火墙,短信防火墙 黑名单拦截是一款用于拦截来电/短信的防火墙软件,只要将你想要忽视的“联系人”添加到黑名单,或者是从手机中选择性的添加要拦截的号码,软件就能有效地将其拦截。
完整的拦截电话服务代码如下:
public class EndCallService extends Service {
// 电话管理的对象
private TelephonyManager telephonyManager;
// 自定义的电话状态器
private MyPhoneStateListener myPhoneStateListener;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
// 电话状态
telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
myPhoneStateListener = new MyPhoneStateListener();
// 参数1:;参数2:的事件
telephonyManager.listen(myPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}
private class MyPhoneStateListener extends PhoneStateListener {
@Override
public void onCallStateChanged(int state, final String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
// 如果是响铃状态,检测拦截模式是否是电话拦截,是挂断
if (state == TelephonyManager.CALL_STATE_RINGING) {
// 挂断电话
endCall();
// 删除通话记录
// 1.获取内容解析者
final ContentResolver resolver = getContentResolver();
// 2.获取内容提供者地址 call_log calls表的地址:calls
// 3.获取执行操作路径
final Uri uri = Uri.parse("content://call_log/calls");
// 4.删除操作
// 通过内容观察者观察内容提供者内容,如果变化,就去执行删除操作
// notifyForDescendents : 匹配规则,true : 精确匹配 false:模糊匹配
resolver.registerContentObserver(uri, true, new ContentObserver(new Handler()) {
// 内容提供者内容变化的时候调用
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
// 删除通话记录
resolver.delete(uri, "number=?", new String[] { incomingNumber });
// 注销内容观察者
resolver.unregisterContentObserver(this);
}
});
}
}
}
@Override
public void onDestroy() {
super.onDestroy();
telephonyManager.listen(myPhoneStateListener, PhoneStateListener.LISTEN_NONE);
}
/**
* 挂断电话
*/
public void endCall() {
//通过反射进行实现
try {
//1.通过类加载器加载相应类的class文件。反射调用,获取ServiceManager字节码文件,需要类的完整的路径
Class<?> forName = Class.forName("android.os.ServiceManager");
//2.获取类中相应的方法
Method method = loadClass.getDeclaredMethod("getService", String.class);
//3.执行方法,获取返回值
IBinder invoke = (IBinder) method.invoke(null, Context.TELEPHONY_SERVICE);
//4.调用获取aidl文件对象方法
ITelephony iTelephony = ITelephony.Stub.asInterface(invoke);
//5.调用在aidl中隐藏的endCall方法挂断电话
iTelephony.endCall();
} catch (Exception e) {
e.printStackTrace();
}
}
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-109984-2.html
必须大发
耗电量也不那么吓人惹
我大惠州