我成功锁定/解锁使用我的屏幕DevicePolicyManager和KeyguardManagerAndroid中L.它运作良好,当我用划模式(无安全性)锁定/解锁屏幕.但是,当我使用模式和密码模式锁定/解锁屏幕时,我无法锁定/解锁它(更高的安全性).是否可以使用DevicePolicyManager和以高安全性锁定/解锁屏幕KeyguardManager.?这就是我做的
protected static final int REQUEST_ENABLE = 0;
DevicePolicyManager devicePolicyManager;
ComponentName adminComponent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.btn);
button.setOnClickListener(btnListener);
}
//LOCK
Button.OnClickListener btnListener = new Button.OnClickListener() {
public void onClick(View v) {
adminComponent = new ComponentName(MainActivity.this, Darclass.class);
devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
if (!devicePolicyManager.isAdminActive(adminComponent)) {
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, adminComponent);
startActivityForResult(intent, REQUEST_ENABLE);
} else {
devicePolicyManager.lockNow();
}
}
};
//UNLOCK
private KeyguardManager keyguardManager;
KeyguardManager.KeyguardLock …Run Code Online (Sandbox Code Playgroud) 我在Android 6.0中使用Camera2API.我在Android 5.0中没有错误地完成了.但是,当我在Android 6.0中使用我的代码时,我遇到了问题.问题是,有时我可以成功打开相机并拍照.但是,有时相机无法打开而且有错误
java.lang.SecurityException: Lacking privileges to access camera service
at android.hardware.camera2.utils.CameraBinderDecorator.throwOnError(CameraBinderDecorator.java:108)
Run Code Online (Sandbox Code Playgroud)
我添加了运行时权限,如下所示:
String[] PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA};
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
if(!hasAllPermissions(this, PERMISSIONS)){
ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
}
}
public static boolean hasAllPermissions(Context context, String... permissions) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
这都是日志
FATAL EXCEPTION: main
Process: com.example.camera2api, PID: 5376
java.lang.SecurityException: …Run Code Online (Sandbox Code Playgroud) android android-camera android-permissions android-6.0-marshmallow
我有一个功能来确定手机屏幕的四种状态:屏幕打开,屏幕关闭,屏幕打开锁定,屏幕打开无锁定.我的功能是
private KeyguardManager keyguardManager;
public String getScreenStatus()
{
String sreen_State="unknown";
keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
if (pm.isInteractive()) {
sreen_State="screen_on";
if(!keyguardManager.inKeyguardRestrictedInputMode()) {
sreen_State="screen_on_no_lock_screen";
}else{
Log.i(TAG, "screen_on_lock_screen");
sreen_State="screen_on_lock_screen";
}
}
else {
sreen_State="screen_off";
}
}
else if(Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT_WATCH){
if(pm.isScreenOn()){
sreen_State="screen_on";
if(!keyguardManager.inKeyguardRestrictedInputMode()) {
Log.i(TAG, "screen_on_no_lock_screen");
sreen_State="screen_on_no_lock_screen";
}else{
Log.i(TAG, "screen_on_lock_screen");
sreen_State="screen_on_lock_screen";
}
}
else {
mIsScreenOn=false;
sreen_State="screen_off";
}
}
return sreen_State;
}
Run Code Online (Sandbox Code Playgroud)
上述功能返回屏幕的校正状态.但是,当我再添加一个代码时,它有错误,如下所示:
KeyguardManager.KeyguardLock
kl = keyguardManager.newKeyguardLock("MyKeyguardLock");
if(index.equals("1"))
kl.disableKeyguard();
else if(indexequals("2"))
kl.reenableKeyguard();
getScreenStatus();
Run Code Online (Sandbox Code Playgroud)
按下按钮可以改变索引.现在,屏幕状态出现了错误.它总是返回 …
我在set ACTION_USAGE_ACCESS_SETTINGS(Settings->Security->Apps with usage access)中使用Intent 在UsageStatsManagerLollipop版本中使用.
public static final int MY_PERMISSIONS_REQUEST_PACKAGE_USAGE_STATS = 1;
if(!hasPermission()){
startActivityForResult(
new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS),
MY_PERMISSIONS_REQUEST_PACKAGE_USAGE_STATS);
}
Run Code Online (Sandbox Code Playgroud)
首先,onCreate()将检查应用程序的权限.如果应用没有权限,则打开Intent(不检查)
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private boolean hasPermission() {
try {
PackageManager packageManager = getApplicationContext().getPackageManager();
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(getApplicationContext().getPackageName(), 0);
AppOpsManager appOpsManager = (AppOpsManager) getApplicationContext().getSystemService(Context.APP_OPS_SERVICE);
int mode = appOpsManager.checkOpNoThrow(AppOpsManager.OPSTR_GET_USAGE_STATS, applicationInfo.uid, applicationInfo.packageName);
return (mode == AppOpsManager.MODE_ALLOWED);
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果用户选择(检查)目标应用程序,我想关闭设置窗口,否则,它将显示有关应用程序名称的消息,以指导用户的选择.我该怎么做?谢谢.我认为它会onActivityResult起作用
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode …Run Code Online (Sandbox Code Playgroud) 我有一个稀疏矩阵,如
A =
(1,1) 1
(3,1) 1
(1,2) 1
(2,2) 1
(1,3) 1
(3,3) 1
(4,3) 1
(4,4) 1
Run Code Online (Sandbox Code Playgroud)
完整的矩阵A可以看如下:
full(A) =
1 1 1 0
0 1 0 0
1 0 1 0
0 0 1 1
Run Code Online (Sandbox Code Playgroud)
我想A通过快速方式找到矩阵的等级(因为我的矩阵可以扩展到10000 x 20000).我尝试通过两种方式来做,但它给出了不同的结果
转换为完整矩阵并使用查找排名
rank(full(A)) = 3
Run Code Online (Sandbox Code Playgroud)使用sprank查找排名
sprank(A) = 4
Run Code Online (Sandbox Code Playgroud)真正的答案必须是3,这意味着使用第一种方式.但是,需要很长时间才能找到排名,特别是大尺寸的矩阵.我知道第二种方式给出4的原因是因为sprank只告诉你矩阵有多少行/列有非零元素,而rank则报告矩阵的实际等级,表示矩阵的行数是线性无关的.sprank(A)是4,但rank(A)只有3,因为您可以将第三行写为其他行的线性组合,具体而言A(2,:) - A(1,:).
我的问题是如何找到具有最低时间消耗的稀疏矩阵的秩
更新:我试图用某种方式.然而,它报告了更长的时间消耗
%% Create random matrix
G = sparse(randi(2,1000,1000))-1;
A=sparse(G) %% Because my input matrix is …Run Code Online (Sandbox Code Playgroud) 我有一个大小的3D图像:( Deep x Weight x Height例如:10x20x30,表示10张图像,每张图像都有大小20x30.
给定补丁大小pd x pw x ph(例如pd <Deep, pw<Weight, ph<Height),例如补丁大小:4x4x4.路径的中心点位置为:pd/2 x pw/2 x ph/2.让我们把时间之间的距离t和时间t+1的中心点是stride,例如stride=2.
我想将原始3D图像提取到上面给出的大小和步幅的补丁中.我怎么能在python中做到这一点?谢谢
.
我有一个噪音图像,如波纹图.假设它是高斯噪声.目前,我正在使用两个步骤来查找边缘
根据等式找到边缘
g = 1 /(1 +β∇(I*G)^ 2)
其中G是高斯滤波器.β是控制噪音水平的重量.
然而,高斯滤波器是图像边缘丢失的原因.我想找到一个更好的方法来保存边缘信息.您能否向我建议找到该图像边缘的最佳方法?
这是我上述步骤的结果
这是我正在处理的噪声添加的图像:
为了获得优势,这是我写的MATLAB代码:
beta=0.01;
G = fspecial('gaussian',[3 3],1);
I_G = conv2(I,G,'same');
[Gx,Gy] = gradient(I_G);
NormGrad = sqrt(Gx.^2 + Gy.^2);
g = 1./ (1 + beta* NormGrad.^2);
imshow(g,[]);
Run Code Online (Sandbox Code Playgroud) 我有一个矩阵A 3x3,它的某些元素等于0。我想计算log(A)。但是我们知道对数(0)无法识别。因此,我想计算忽略元素等于0的矩阵A的对数。如果元素等于0,则要设置log(0)= 0。如何在Matlab中实现它。谢谢大家 范例:
A=[3 2 3
3 0 2
4 5 0]
Log(A)=[ 1.0986 0.6931 1.0986
1.0986 0 0.6931
1.3863 1.6094 0]
Run Code Online (Sandbox Code Playgroud) 我有一个d它的大小的矢量1x1000.它从存储随机值0来1.例如
d=[0.0076 0.4629 0.1554...0 0 0 0 ...0.0442 0 0 0 10^-7 10^-7 10^-7]
Run Code Online (Sandbox Code Playgroud)
现在,我想获得向量的最后一个元素的索引(具有最大化索引)受到non-zero或大于10^-7).对于我的例子,有值的元素是0.0442和index=?.如何通过MATLAB实现它?谢谢大家
我有两个变量,例如:
path='data\voc11\SegmentationClassExt\%s.png'
name='123'
Run Code Online (Sandbox Code Playgroud)
我想像这样将两个字符串连接成一个字符串:
data\voc11\SegmentationClassExt\123.png
Run Code Online (Sandbox Code Playgroud)
我使用下面的代码:
sprintf(path, name)
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
警告:控制字符
'\S'无效。有关sprintf格式字符串中有效的控制字符,请参见'doc '。
ans =
dataoc11
Run Code Online (Sandbox Code Playgroud)
我在Windows上使用MATLAB。你能给我任何解决方案吗?我尝试进行更改 path='data\\voc11\\SegmentationClassExt\\%s.png',当我这样做时,上面的代码将起作用。但是,当前数据是
path='data\voc11\SegmentationClassExt\%s.png';
Run Code Online (Sandbox Code Playgroud)