此文是在做项目时用到的一些方法的总结。
1、判断网络是否连接:
private int checkNetwork(Context context){
NetworkInfo info = ((ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if(info != null && info.isConnected()){
return 1;
}else{
return -1;
}
}
2、运行时权限:
首先在需要用户允许权限的函数中写下面例子的代码(注:不一定要输入READ_PHONE_STATE权限,写自己需要的权限即可):
if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MainActivity.this, new String[]{android.Manifest.permission.READ_PHONE_STATE}, 1);
}
然后重写onRequestPermissionsResult()函数:
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case 1:
if(grantResults.length > 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED){
Toast.makeText(this, "权限拒绝将无法使用程序", Toast.LENGTH_SHORT).show();
finish();
}
break;
default:
}
}
注:此处的requestCode要和上面中的一致,不一定只能为1,可以是任意唯一值。
3、退出程序时提示:再按一次退出:
private long mLastBackPress = 0;
@Override
public void onBackPressed() {
long time = System.currentTimeMillis();
if (time - mLastBackPress < 2000) {
super.onBackPressed();
} else {
mLastBackPress = time;
Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
}
}