在应用程序启动时,应用程序启动应该执行某些网络任务的服务.在针对API级别26后,我的应用程序无法在后台启动Android 8.0上的服务.
引起:java.lang.IllegalStateException:不允许启动服务Intent {cmp = my.app.tt/com.my.service}:app在后台uid UidRecord {90372b1 u0a136 CEM空闲过程:1 seq(0,0) ,0)}
据我所知,它涉及: 后台执行限制
如果针对Android 8.0的应用程序在不允许创建后台服务的情况下尝试使用该方法,则startService()方法现在会抛出IllegalStateException.
" 在不允许的情况下 " - 它实际意味着什么?以及如何解决它.我不想把我的服务设置为"前景"
我想在我的平板电脑启动时启动我的应用程序,以便我的应用程序的主要活动是用户在启动平板电脑时看到的第一件事.
我读过有关LauncherActivity但我不明白如何使用它.
任何人都可以帮我提供建议,链接或教程吗?
LauncherActivity是最好的方式还是有替代方案?
我正在按照本指南com.android.future.usb在API 10上使用库.
我做了以下事情:
<uses-feature android:name="android.hardware.usb.accessory" />
(直接孩子<manifest>)
<uses-library android:name="com.android.future.usb.accessory" />
(孩子的<application>)
<meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
android:resource="@xml/accessory_filter" />
(第一个孩子activity)
res/xml/accessory_filter.xml提到这里.这样做允许我使用com.android.future.usb它的子类.但问题是应用程序在更改后无法启动manifest.
这是一个root设备,该应用程序由OS配置为在设备启动时自动启动.
我应该做任何其他配置才能使这项工作?也许应该在固件中做些什么?
编辑:
这是logcat与所有相关的usb:
USB mass storage support is not enabled in the kernerl
usb_configuration switch is not enabled in the kernerl
Volume usb state changing -1 (Initializing) -> 0 (No-Media)
Ignoring unknown …Run Code Online (Sandbox Code Playgroud) 我想在 Android 设备上启动时自动启动我的应用程序。
有没有任何软件包或任何解决方案可以做到这一点?我知道如何在原生 Android 代码中做到这一点,但是在 Flutter 中如何做到呢?
在我的应用程序中,我设置了一个警报
AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
...
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
...
alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent);
Run Code Online (Sandbox Code Playgroud)
它工作正常,除非我关闭并打开手机.
更具体地说,让我们说在10:20,我将闹钟设置为10:22,然后在10:21关闭并打开电话,闹钟将无效.
可能是什么问题?这是pendingIntent的广播问题还是应该设置alarmManager对象的一些标志,以便它在这样的条件下工作?
我想构建一个Android应用程序,它可以通过预先确定的文本消息联系当前的调用者.发送文本消息很简单,但在独立应用程序中确定当前呼叫者的电话号码是一项挑战.是否有一种简单的方法来记录电话号码,以便我可以在通话时向他们发送消息?
当然有手动方法可以做到这一点:记下号码,将其键入新短信,输入信息.但我想预先定义消息并能够"将其发送给当前的呼叫者".
我的应用程序当前使用后台服务与物理设备进行通信(蓝牙).(我制造和销售物理设备.)应用程序每500ms向设备发送一个命令.用户启动此过程并且必须运行直到用户停止它.当应用程序处于活动状态时,该过程的结果将发送到应用程序.即使应用程序未处于活动状态,也需要运行此过程.(即他们接听电话,搜索网络.)一旦应用程序再次变为活动状态,该过程的状态将与应用程序同步.该过程可以在几分钟到几个小时的任何时间运行.(是的,如果用户希望在99小时内运行该过程,则需要插入.)大多数用户运行它持续2-15分钟.一切都很好,但是对于API 26,看起来不再允许这种架构.一种迁移选项是移动到前台服务.但是,我发现有关前台服务如何工作的文档不清楚.前台服务是否继续运行且应用程序未激活?(即它已经通过onPause.)如果是这样,这与后台服务有什么不同?有关前台服务如何工作的更好的文档.(我的网络搜索没有显示任何重要信息.)Alos,API 26文档没有说明如果新的限制仍适用,应用程序是否与后台服务绑定.他们呢?
谢谢,斯坦
我正在学习,react native并且为此,我正在构建我的第一个应用程序。然而,尽管它是如此出色,但它似乎有一些局限性。
我要我的应用程序执行的操作是在设备启动后立即开始运行后台程序(例如WhatsApp或警报应用程序)。
我还想要像WhatsApp新消息通知(覆盖屏幕)这样的通知。
我是用android studio做的,想用react native做。到目前为止,我还没有找到任何可以做到这一点的软件包/库,这是限制react native还是存在可以做到这一点的软件包?因为现在我正在考虑用android studio。
我使用了一种流行的方法使我的应用程序自动启动在此处描述: 如何在启动时启动应用程序?
问题是应用程序不以logcat中的以下消息开头:
W/BroadcastQueue: Reject to launch app .../10186 for broadcast: App Op 60
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
PS.Android 5.0.2,手机华硕zenphone
我已经制作了使用一个后台服务的Android应用程序.它运行良好,但如果用户重启他的设备,我的应用程序将停止.我该如何解决它,即如何在重启设备后重启我的应用程序?
嘿我想制作一个应用程序,将在手机启动时启动,我能够这样做但我的问题是在启动时禁用"主页按钮"和"后退按钮"它应该只在我启用时启用点击我的活动按钮,这将是启动时的主屏幕,请帮帮我..
我是android的新手,在这里我的目标是使用警报管理器每2分钟运行一个代码段,该代码段将轮询服务器(使用网站的api),并基于返回的JSON生成通知。上网查找后,我认为最好的选择之一就是使用Intent服务和android。
服务和收据清单
<service
android:name=".NotifyService"
android:enabled="true"
android:exported="false" >
</service>
<receiver
android:name=".TheReceiver"
android:enabled="true"
android:exported="true" >
</receiver>
<receiver
android:name=".OnOffReceiver"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
在Flash屏幕活动的一部分中,我将其称为意图服务,该服务负责轮询通知:
Intent msgIntent = new Intent(this, NotifyService.class);
startService(msgIntent);
Run Code Online (Sandbox Code Playgroud)
接收器在设备启动时启动警报:
public class OnOffReceiver extends BroadcastReceiver
{
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
public OnOffReceiver(){}
@Override
public void onReceive(Context context, Intent intent)
{
Intent service = new Intent(context, NotifyService.class);
service.setAction(NotifyService.CREATE);
context.startService(service);
}
}
Run Code Online (Sandbox Code Playgroud)
IntentService类别
public class NotifyService extends IntentService
{
public NotifyService()
{
super("NotifyService");
}
public static final …Run Code Online (Sandbox Code Playgroud) android alarmmanager android-service intentservice android-background
android ×12
alarmmanager ×2
broadcasting ×1
button ×1
devise ×1
flutter ×1
java ×1
launcher ×1
phone-call ×1
phone-number ×1
react-native ×1
usb ×1