我有一台带有Android 5.0的华为P8用于测试应用程序.该应用程序需要在后台运行,因为它跟踪BLE区域.
我发现华为内置了一个名为Protected Apps的"功能",可以通过手机设置(电池管理器>受保护的应用程序)进行访问.这允许选定的应用程序在屏幕关闭后继续运行.
对华为来说很明智,但不幸的是,对于我来说,它看起来像是选择加入,即默认情况下应用程序已经关闭,你必须手动将它们放入.这不是一个showstopper,因为我可以在常见问题解答或打印中建议用户关于修复的文档,但我最近安装了Tinder(用于研究目的!),并注意到它被自动放入受保护的列表中.
有谁知道我的应用程序如何做到这一点?它是清单中的设置吗?这是华为为Tinder启用的东西,因为它是一个受欢迎的应用程序?
如果在背景中,MyApp的接收器工作正常,它是:
public class MySmsReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("triggered sms");
if(intent.getAction().equals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION)) {
Toast.makeText(context, "message Received", Toast.LENGHT_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
我的接收器清单文件是
<receiver android:name=".MySmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
文件说,如果我在清单文件中声明一个接收器,它应该始终有效.但就我而言,它不是......
但每当我通过刷它清除我最近的应用程序时它就停止了工作.在我去任务管理员后看到MyApps强制停止如下所示 
我想出了一些应用程序,如watsapp和fb总是留在内存中说这个bcoz刷完清楚的最近的应用程序仍然任务管理器有如下所示的跟随状态
我怎么能在我的应用程序中执行此操作..什么会使我的应用程序像其他第三方应用程序,如watspp和Facebook ...我怎么能让我的应用程序在内存中总是我问这个然后只有我的接收器将始终工作..如果我错了,请给我一个解决方案来做到这一点......
我一直在搜索这个问题但仍然无法找到解决方案...我错了吗?还是真的有办法做到这一点?请有人帮帮我...这让我一周!!! 希望我在这里解释我的问题,如果我不问我,我会立即给你答复.
service android taskmanager broadcastreceiver google-cloud-messaging
我找到了xiaomi,honor和letv的代码,但我想为联想做同样的事情
if(Build.BRAND.equalsIgnoreCase("xiaomi") ){
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
startActivity(intent);
}else if(Build.BRAND.equalsIgnoreCase("Letv")){
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.letv.android.letvsafe", "com.letv.android.letvsafe.AutobootManageActivity"));
startActivity(intent);
}
else if(Build.BRAND.equalsIgnoreCase("Honor")){
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity"));
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud) 我有一个WakefulBroadcastReceiver带IntentService,叫和做一些东西,每半小时报警.我已经用setExactAndAllowWhileIdle()方法处理了打盹模式.
一些新的定制操作系统的智能手机最近在市场上推出,他们有自己的基于android操作系统的定制操作系统 像oppo与颜色os,vivo与funtouch os,xiomi与MIUI os.在操作系统中,有一个清除内存的功能.他们有一个触摸清除内存选项.例如,如果用户清除最近的应用程序列表或从最近的应用程序列表应用程序删除应用程序的所有后台服务以及所有警报将被终止.
如何使用这些新操作系统?
我的应用程序有后台服务,即使应用程序被任务管理器杀死也继续运行但是当我在MI(xiaomi)手机上测试我的应用程序时,当我从任务管理器关闭应用程序并且我的服务继续运行时,它会终止我的应用程序服务即使我从任务管理器中删除我的应用程序,也能在除MI之外的所有设备上完美地工
那么即使应用程序被任务管理器杀死,如何让我的服务在后台运行?
我想知道xiaomi是否可以提供任何应用程序的后台服务?我的应用程序中的服务需要一直在后台运行,在所有设备中它的工作正常除了小米,它如何以编程方式完成?
我制作了一个应用程序,这是按时间间隔存储位置信息并将其发送到服务器的应用程序 服务在后台或前台模式下工作。它在常见的 Android 手机中运行良好。顺便说一句,应用程序在 oppo 和 vivo 中运行不佳 启动第一个 Activity 后,应用程序(此 Activity)在 3~5 分钟后被杀死。
try {
Intent intent = new Intent();
String manufacturer = android.os.Build.MANUFACTURER;
if ("xiaomi".equalsIgnoreCase(manufacturer)) {
intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
} else if ("oppo".equalsIgnoreCase(manufacturer)) {
intent.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity"));
} else if ("vivo".equalsIgnoreCase(manufacturer)) {
//intent.setComponent(new ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity"));
intent.setComponent(new ComponentName("com.iqoo.secure", "com.iqoo.secure.ui.phoneoptimize.AddWhiteListActivity"));
}
List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() > 0) {
startActivity(intent);
}
} catch (Exception e) {
Crashlytics.logException(e);
}
Account account = createSyncAccount(this);
Intent locationIntent = new Intent(this, UserLocationService.class); …Run Code Online (Sandbox Code Playgroud) 我正在开发一个我要在其中显示Push通知的android应用程序。
除小米手机(我正在使用Redmi Note 4)外,它在大多数设备中均显示良好。我发现的问题是,由于Xiomi提供的“ 自动启动”选项,默认情况下该选项将被禁用,并且用户需要手动启用它。
但是我不知道我能看到某些Android Apps在没有任何用户交互的情况下启用此选项,例如:WhatsApp。如果我尝试重新安装WhatsApp并看到“自动启动”选项,则会启用它!
我无法通过说这是Xiomi设备的功能来说服客户,因为他指出了一些运行良好的应用程序,就像我上面提到的示例一样。
这个问题已经有人问过了
以编程方式将我的应用添加到android中的AutoStart应用列表
如何在小米制造商移动设备中以编程方式为我们的应用程序启用自动启动检查
但是我看不到任何答案,因此希望有人能对此给出答案,在此发布。
我的应用程序在 Sony Xperia、OnePlus 3、Lyf、Micromax 等某些设备上成功自动启动。但是小米没有。然后我在 StackOverflow 上发现我必须在小米内置启动管理器中为我的应用程序授予自动启动权限。我也这样做了,但我的应用程序没有自动启动。这是清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.missingcell.trackerapp"
android:installLocation="internalOnly">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" /> …Run Code Online (Sandbox Code Playgroud)