HarmonyOS 鸿蒙Next系统升级后应用程序无法自启动
HarmonyOS 鸿蒙Next系统升级后应用程序无法自启动 各位大神急!!!!!!
我用android studio 写了个自启动的程序,开机监听广播后启动自身,代码如下:
package com.bridgescanapp.activity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlarmManager;
import android.app.KeyguardManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.BatteryManager;
import android.os.Handler;
import android.os.PowerManager;
import android.os.SystemClock;
import com.bridgescanapp.NetWork;
import com.bridgescanapp.alarm.AlarmService;
import com.bridgescanapp.dao.DeviceInfo;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
import static androidx.core.content.ContextCompat.getSystemService;
public class BootReceiver extends BroadcastReceiver {
BatteryManager batteryManager = null;
private Handler handler = null;
private Runnable runnable = null;
void logAction(Context context,String string) throws IOException {
File m_sdCardDir = context.getExternalFilesDir(null).getAbsoluteFile();
File m_BuildDir_data = new File(m_sdCardDir, "/data/log");
if(m_BuildDir_data.exists()==false)m_BuildDir_data.mkdirs();
File datafile = new File(m_BuildDir_data, "/intent.txt");
if (!datafile.exists()) { datafile.createNewFile(); }
FileWriter fileWritter = new FileWriter(datafile.getAbsolutePath(),true);
fileWritter.write("收到数据");
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(String.valueOf(new Date())).append(" ");
stringBuilder.append(string);
fileWritter.write(stringBuilder.toString());
fileWritter.write(System.getProperty("line.separator"));
fileWritter.close();
}
public static PendingIntent pendingIntent = null;
public static AlarmManager alarmManager = null;
@Override
public void onReceive(Context context, Intent intent) {
try {
logAction(context,intent.getAction());
} catch (IOException e) {
e.printStackTrace();
}
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
for(int i=0;i<10;i++){
Intent myIntent = new Intent(context, MainActivity.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
pendingIntent = PendingIntent.getActivity(context, 0, myIntent, 0);
alarmManager = (AlarmManager) context.getSystemService(Service.ALARM_SERVICE);
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,System.currentTimeMillis() + 1000 * 2 + i * 1000 * 2,pendingIntent);
try {
logAction(context,"pendingIntent " + i + " " + pendingIntent.toString());
logAction(context,"alarmManager " + i + " " + alarmManager.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
这段代码,在华为P40手机 HarmonyOS 系统版本 2.0.0.245上正常自启动!!!
但是手机升级后 HarmonyOS 系统版本2.0.0.273及系统版本2.0.1.262都无法自启动了,debug也没有看到错误信息,请各位大神帮忙看看怎么解决!
感激不尽
更多关于HarmonyOS 鸿蒙Next系统升级后应用程序无法自启动的实战教程也可以访问 https://www.itying.com/category-93-b0.html
您好,您的问题需要进一步定位,请您通过在线提单进一步解决:https://developer.huawei.com/consumer/cn/support/feedback/#/,感谢您的反馈和支持。
更多关于HarmonyOS 鸿蒙Next系统升级后应用程序无法自启动的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
怎么处理的能不能详细说下啊
朋友,怎么处理的,我现在也遇到这个问题了,在Android 手机上自启动就没问题,在华为手机,鸿蒙操作系统这个功能就失效了,我是HUAWEI Mate9 ,Harmony OS 2.0.0
怎么处理的?
HarmonyOS Next系统升级后,应用程序无法自启动可能是由于系统权限管理策略的调整。鸿蒙系统在升级后可能加强了对应用程序自启动行为的管控,以确保系统资源的合理分配和设备的续航能力。系统可能会默认禁止部分应用程序在后台自启动,或者需要用户手动授权才能允许自启动。
要解决此问题,可以检查应用程序的自启动权限设置。在鸿蒙系统中,用户可以通过“设置”->“应用管理”->“应用启动管理”来查看和管理应用程序的自启动权限。如果某个应用程序的自启动权限被关闭,可以手动开启该权限,允许应用程序在后台自启动。
此外,某些应用程序可能需要特定的系统权限才能自启动。如果应用程序的自启动功能仍然无法正常使用,可以检查应用程序是否获得了必要的系统权限,例如“后台弹出界面”或“后台运行”权限。这些权限可以在“设置”->“应用管理”->“权限管理”中进行配置。
如果问题仍然存在,可能是应用程序本身需要适配鸿蒙Next系统。开发者需要确保应用程序遵循鸿蒙系统的开发规范,并针对新系统进行优化。
在HarmonyOS鸿蒙Next系统升级后,若应用程序无法自启动,可能是由于以下原因:
-
权限设置:检查应用程序的自启动权限是否被禁用。进入“设置” > “应用” > “应用启动管理”,确保应用的自启动权限已开启。
-
电池优化:某些应用可能因电池优化设置而被限制自启动。进入“设置” > “电池” > “应用启动管理”,将应用从优化列表中移除。
-
系统策略变更:新系统可能引入了更严格的后台管理策略,建议联系应用开发者确认兼容性。
-
应用更新:确保应用程序已更新至最新版本,以适配新系统。
若问题依旧,建议备份数据后恢复出厂设置。