涂鸦引用其他:https://github.com/1993hzw/Doodle
图片缩放引用:https://github.com/davemorrissey/subsampling-scale-image-view
Android应用内安装异常处理
1.权限
2.配置FileProvider
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
boolean hasInstallPermission = getPackageManager().canRequestPackageInstalls();
if (!hasInstallPermission) {
startInstallPermissionSettingActivity();
}
}
@RequiresApi(api = Build.VERSION_CODES.O)
private void startInstallPermissionSettingActivity() {
Uri packageURI = Uri.parse("package:" + BuildConfig.APPLICATION_ID);
//注意这个是8.0新API
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
startActivityForResult(intent, 1);
}
4.安装
private static void apkIntentInstallNew(File apkFile,Context mContext){
Intent intent = null;
if (Build.VERSION.SDK_INT > 29){
intent = new Intent();
}else{
intent = new Intent(“android.intent.action.VIEW”);
}//这个地方需要注意
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//Uri uri = Uri.fromFile(apkFile);
Uri uri = null;
//todo N FileProvider
//todo O install permission
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
uri = FileProvider.getUriForFile(mContext,”应用包名.fileProvider”, apkFile);//file不用在这里new,直接在外边new然后传进来
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
}else{
uri = Uri.fromFile(apkFile);
}
intent.setDataAndType(uri, “application/vnd.android.package-archive”);
mContext.startActivity(intent);
}
Android Wifi连接
平板第一次使用的时候wifiManager.addNetWork()返回ID为0,ID为0也可以去连接。
Android ListView中TextWatcher问题
ListView中给每项的Edittext添加TextWatcher事件碰到问题:
当某一下edittext输入值触发afterTextChanged时候会触发其他项中textwatcher的aftertextchange事件。
修改前:
修改后:
处理方法:
将textwatcher和holder绑定,只在初始化holder的时候初始化textwatcher,然后在每项单独设置textwatcher需要绑定的数据。