Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用户拨打电话号码后锁定Android手机_Android - Fatal编程技术网

用户拨打电话号码后锁定Android手机

用户拨打电话号码后锁定Android手机,android,Android,我正在开发一个安全应用程序,如果用户拨打一个不经常拨打的电话号码,并且他以前从未打过电话,那么用户必须重新验证自己的身份。为此,我想在检查电话号码后锁定手机 public class outgoingCalls extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { Log.v("onReceive", "In onReceive()"); if (confiden

我正在开发一个安全应用程序,如果用户拨打一个不经常拨打的电话号码,并且他以前从未打过电话,那么用户必须重新验证自己的身份。为此,我想在检查电话号码后锁定手机

public class outgoingCalls extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {

    Log.v("onReceive", "In onReceive()");
    if (confidence == 0) {
        Log.v("onReceive","confidence zeroed");
        Intent i = new Intent();
        i.setClassName("abc.xyz.SECURITY","abc.xyz.SECURITY.lockActivity");
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    } 
}
在这个新活动lockActivity中,我需要锁定我评论过的手机//lock phone

public class lockActivity extends Activity {  

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Log.v("lock","lockActivity onCreate method called");
        //  setContentView(R.layout.main); 
        Log.v("lock","locking");
// LOCK PHONE
}
} 
手机没有用我尝试过的方法锁定。这些措施包括:

1.  KeyguardManager mgr = (KeyguardManager)   getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = mgr.newKeyguardLock("edu.Boston.SECURITY.lockActivity"); 
((KeyguardLock) lock).reenableKeyguard(); 

2.  PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
manager.goToSleep(100);//int amountOfTime

3. PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,    "Tag");
wl.acquire();
wl.release();

4. WindowManager.LayoutParams params = getWindow().getAttributes();
   params.screenBrightness = 0;
   getWindow().setAttributes(params);
Android清单文件具有以下权限

    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 
    <uses-permission android:name="android.permission.WAKE_LOCK" />

为什么我不能锁定电话?有什么建议吗?
非常感谢你的帮助。谢谢你

尝试创建DevicePolicyManager

然后打电话:

DevicePolicyManager mDPM  = (DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE);
mDPM.lockNow();

-有人说不可能终止正在进行的通话。这是真的吗?这可能是我无法锁定设备或至少终止呼叫的原因吗?我们可以使用setResultData(null)终止已拨呼叫。这是“不要呼叫你的前醉汉”类应用程序吗汉克斯·萨希尔先生,我在尝试你的建议。鲨鱼-不,哈哈-但我相信这是一个很好的用途!haha@user1773209:-如果可能的话,请分享你的答案。Teknogenie-这有点奏效。。在我的情况下,当我打电话时,屏幕变黑,屏幕似乎已锁定,但我无法看到锁定的屏幕进行解锁。。当我点击手机顶部的锁定按钮时,手机就会解锁并继续拨打电话。仍在调试。。但是非常感谢你的帮助,让我走了这么远!谢谢我刚刚发现,现在的情况是,通话仍在进行中,但通话结束后,手机被锁定。所以它起作用了,我只需要把代码放在正确的位置来中断调用并结束调用。。