我制作了一款监听手机加速度计的应用程序 当它倾斜时,它应该调用某个数字。
到目前为止,我的每个人都跑了,甚至打电话, 但只有在我每手解锁手机后才能使用。
当有人试图偷走轮胎时,应用程序会打电话给我 我的车,所以手机必须从睡眠状态打电话给我。
这是我的调用方法和相关变量:
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
答案 0 :(得分:0)
我知道这不是你想要的,但你可以将手机放在车载充电器上(并隐藏它)。
Android设备提供充电时保持清醒(和解锁)的选项。检查设备上的开发人员选项。