我正在開發一個安全應用程序,如果用戶撥打的電話號碼不是經常呼叫而且以前從未呼叫過的電話號碼,則用戶必須重新進行身份驗證。爲此,我想在檢查電話號碼後鎖定電話。用戶撥打電話號碼後鎖定Android手機
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" />
爲什麼我不能夠鎖定手機?任何指針? 非常感謝您的幫助。欣賞它!
http://stackoverflow.com/questions/3820307/how-to-terminate-a-call-programmatically -under-android - 有人表示無法終止進程調用。真的嗎 ?這可能是我無法鎖定設備或至少終止通話的原因嗎? – user1773209
我們可以使用** setResultData(null)**終止撥打的電話。 –
這是'不要叫你前醉'有點應用程序? :D – Shark