我做了一個應用程序,它監視手機的加速度計 ,當它傾斜時,它應該調用某個數字。從睡眠打電話
我everythung到目前爲止運行,它甚至不來電, 但只有在我解開每手手機。
當有人試圖從我的汽車盜取 輪胎時,該應用程序打算給我打電話,所以手機必須從睡眠狀態喚醒我。
這裏是我的電話的方法和相關的變量:
PowerManager powerManager;
WakeLock fullWakeLock;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
fullWakeLock = powerManager.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "Loneworker - FULL WAKE LOCK");
}
...
public void call(){
fullWakeLock.acquire();
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG");
keyguardLock.disableKeyguard();
try {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + ((EditText)findViewById(R.id.nPhoneToCall)).getText().toString()));
startActivity(callIntent);
} catch (ActivityNotFoundException e) {
Log.e("", "Call failed", e);
}
}
編輯:哦,我也試過:
Window window = this.getWindow();
window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
就像我說的,他確實讓電話 但只有當屏幕已經解鎖:(
EDIT2: 必須在Android 2.1上運行(API 7級)
請幫助:3
你應該是DeviceAdministrator才能解鎖手機。 –
你好, 我找了它,互聯網上說,設備管理與2.2引入,是不是有一種方法2.1? – Splitframe
將電話號碼存儲在例如'SharedPreferences'並使用'Service'。主叫號碼自動可能需要一個植根手機雖然 – zapl