Jha*_*Das 10 android android-wake-lock wakelock telephonymanager
在过去的几周里,我面临着Android中的电话管理器API的问题 - 基于监听器开始录制的呼入监听器以及结束呼叫停止录制(流程正常工作)
ISSUE
我现在面临的问题是,在一些手机,它正在所有的时间,但在一些手机,电话经理的广播听众停止后几个小时的工作.经过一些研究,我找到了一个使用唤醒锁来防止CPU睡眠的解决方案,我尝试了这个但是徒劳无功.
@Override
public void onReceive(Context context, Intent intent) {
//We listen to two intents. The new outgoing call only tells us of an
//outgoing call. We use it to get the number.
roPlantPrefs = RoPlantPrefs.getInstance(context);
databaseHelper = new DatabaseHelper(context);
//lastState = roPlantPrefs.getLastState();
if (roPlantPrefs.getLogin()) {
if (intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL")) {
savedNumber = intent.getExtras().getString("android.intent.extra.PHONE_NUMBER");
} else {
roPlantPrefs = RoPlantPrefs.getInstance(context);
// if (!roPlantPrefs.getIsOnCall()) {
String stateStr = intent.getExtras().getString(TelephonyManager.EXTRA_STATE);
String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
int state = 0;
if (stateStr.equals(TelephonyManager.EXTRA_STATE_IDLE)) {
state = TelephonyManager.CALL_STATE_IDLE;
} else if (stateStr.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) {
state = TelephonyManager.CALL_STATE_OFFHOOK;
} else if (stateStr.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
state = TelephonyManager.CALL_STATE_RINGING;
}
onCallStateChanged(context, state, number);
}
}
// }
}
Run Code Online (Sandbox Code Playgroud)
我也曾经使用timer and alarm manger但是它最多工作2到3个小时然后听众停止工作,任何帮助都可以得到赞赏.
我在 Oppo、Vivo、Mi 等手机上遇到了同样的问题,从最近的应用程序中删除后,应用程序被杀死,甚至服务也被杀死
解决方案:我在我的应用程序中添加了这样的自动启动权限,并且它有效。
解决此问题后,由于打瞌睡模式,我的应用程序在后台运行一段时间后被冻结/终止
解决方案:对于这种情况,只需进入->设置->电池选项,并允许您的应用程序在后台运行,如果这样做,DOZE模式不会影响您的应用程序,
干杯
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |