标签: bootcompleted

BOOT_COMPLETED时,BroadcastReceiver内的AlarmManager

我有一个服务"GroupsTaskAlarmChecker",它由GroupsManager在onCreate的Groups.class活动中每隔20秒调用一次:

int seconds = 20;

           Intent myIntent = new Intent(Groups.this, GroupsTaskAlarmChecker.class);
           pendingIntent = PendingIntent.getService(Groups.this, 0, myIntent, 0);

           AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

           Calendar calendar = Calendar.getInstance();
           calendar.setTimeInMillis(System.currentTimeMillis());
           calendar.add(Calendar.SECOND, 10);
           alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), seconds * 1000, pendingIntent);
Run Code Online (Sandbox Code Playgroud)

这非常有效.但是我需要在设备启动时这样做.然后我知道我必须像这样制作AndroidManifest:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 <receiver android:name=".ReceiverBoot">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED">
            <category android:name="android.intent.category.HOME">
        </category></action></intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

然后mi broadcastReceiver像这样:

 public class ReceiverBoot extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    int seconds = 20;

        Intent myIntent = new Intent(context, GroupsTaskAlarmChecker.class);
        pendingIntent = PendingIntent.getService(context, 0, myIntent, 0);

        AlarmManager …
Run Code Online (Sandbox Code Playgroud)

service android broadcastreceiver alarmmanager bootcompleted

6
推荐指数
1
解决办法
3958
查看次数

为什么基于GPS的Android应用程序没有安装在基于辅助GPS(A-GPS)的Android设备?

它显示,错误表明"没有符合条件的应用安装设备"

设备规格如下,

型号:联想A369i

Android OS版本:4.2.2

我在android mainfest文件中执行以下权限

<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
    <uses-permission android:name="com.ylogtrack.activity.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
      <uses-permission android:name="android.permission.BLUETOOTH" />
Run Code Online (Sandbox Code Playgroud)

PLZ建议

service gps android bootcompleted

6
推荐指数
1
解决办法
730
查看次数

Android ACTION_SHUTDOWN广播无法正常工作

代码-

public class ShutdownReceiver extends BroadcastReceiver {
    private static final String TAG = "ShutdownReceiver";

    @Override
    public void onReceive(final Context context, final Intent intent) {
        Logger.i(TAG, "Shutting Down..........................");
        if("android.intent.action.ACTION_SHUTDOWN".equals(intent.getAction())) {
            //Power Off
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

服务-

private BroadcastReceiver mReceiver = null;

    @Override
    public void onCreate() {
         super.onCreate();
         // INITIALIZE RECEIVER
         //It is used to register broadcast for ShutDown or Power Off
         IntentFilter filter = new IntentFilter(Intent.ACTION_SHUTDOWN);
         mReceiver = new ShutdownReceiver();
         registerReceiver(mReceiver, filter);
   }

   @Override
   public void onDestroy() {
       unregisterReceiver(mReceiver);
   }
Run Code Online (Sandbox Code Playgroud)

权限- …

android bootcompleted powermanager

5
推荐指数
1
解决办法
2万
查看次数

Android BOOT_COMPLETED 事件未启动服务

我正在编写一个小型 android 应用程序,它在设备启动时启动我的服务。应用程序在所有 Android 版本 4.4.2(Mi Note 4G,必须在其安全应用程序中启用权限)、5.0(Lenovo K3 Note)、5.1(一加一)、6(Nexus 5)的手机上运行良好,除了一台运行 Android 5.0 的手机(联想 A1000,启动器类似于 MiUI)。应用程序仅安装在内部存储上。在设备重新启动之前使用/启动应用程序一次。以下是清单和广播接收器文件的摘录

清单.xml:

 <receiver android:name="com.company.Broadcast"?     android:permission="android.permission.RECEIVE_BOOT_COMPLETED">?       
        <intent-filter>?    
            <action android:name="android.intent.action.BOOT_COMPLETED" />?    
            <category android:name="android.intent.category.LAUNCHER" />?    
        </intent-filter>?    
    </receiver>
    ?    <service android:enabled="true" android:exported="false" android:name="com.company.service" />
Run Code Online (Sandbox Code Playgroud)

广播接收器:

    public class Broadcast extends BroadcastReceiver {?    
        private static final String TAG = “BroadcastReceiver";?    
        @Override?    
        public void onReceive(Context context, Intent intent) {?    
            Log.d(TAG, "onReceive");?    
            Intent service = new Intent(context, Service.class);?    
            service.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);?    
            context.startService(service);
        ?    }?    
    ?    }
Run Code Online (Sandbox Code Playgroud)

一些预安装的应用程序在启动时可以正常启动,而有些则被跳过。我的应用程序恰好在跳过的应用程序列表中。

以下是设备启动时 logcat 中的一些行,

01-18 17:02:58.933 504-560/? I/PackageManager: Package …
Run Code Online (Sandbox Code Playgroud)

android android-service bootcompleted

5
推荐指数
1
解决办法
2044
查看次数

Android BOOT_COMPLETED权限拒绝

我想在运行Android 7.1.1的真实设备上测试启动接收器(android.intent.action.BOOT_COMPLETED),我尝试从命令提示符下使用以下命令:

adb shell正在广播-a android.intent.action.BOOT_COMPLETED -p [package_name]

但它会返回广告异常:

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=11114, uid=2000
    at android.os.Parcel.readException(Parcel.java:1684)
    at android.os.Parcel.readException(Parcel.java:1637)
    at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:3537)
    at com.android.commands.am.Am.sendBroadcast(Am.java:772)
    at com.android.commands.am.Am.onRun(Am.java:404)
    at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
    at com.android.commands.am.Am.main(Am.java:121)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)
Run Code Online (Sandbox Code Playgroud)

我已经尝试过Android提供的解决方案-尝试在启动时测试服务(java.lang.SecurityException:权限拒绝),但是它对我不起作用。

我该如何解决?

提前致谢!:)

android broadcastreceiver android-intent bootcompleted

5
推荐指数
0
解决办法
2391
查看次数

Intent BOOT_COMPLETED 不适用于华为设备

我想在我的 Android 应用程序中收听 APN 更改。

因此,我在android.intent.action.BOOT_COMPLETED. 此服务启动一个 ContentObserver,它侦听 content://telephony/carriers/preferapn.

我在几个不同的设备上测试了这个设置(例如 LG Spirit with Android 5.0、Samsung A3 with 6.0、Emulator Nexus5 with 7.0 和 Huawei P9 Lite with 7.0)

onCreate我的服务的华为手机上没有调用。

我的另一种方法与Manifest 中注册的android.intent.action.ANY_DATA_STATEa 相结合,BroadcastReceiver在这款手机上也不起作用。

我的清单的相关部分:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>  

...

<receiver android:name=".ConnectivityChangeReceiver">
    <intent-filter>
        <action android:name="android.intent.action.ANY_DATA_STATE" />
    </intent-filter>
</receiver>

<receiver android:name=".APNChangedServiceStarter" >
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <action android:name="android.intent.action.QUICKBOOT_POWERON" />
        <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
    </intent-filter>
</receiver>

<service android:name=".APNChangedService"></service>
Run Code Online (Sandbox Code Playgroud)

android android-intent android-service bootcompleted huawei-mobile-services

5
推荐指数
2
解决办法
2895
查看次数

导出后未在Honeycomb上调用BOOT_COMPLETED

我有一个非常奇怪的问题,网站上已有的问题都没有答案或相同的问题.

我有一个接收BOOT_COMPLETED的应用程序.我确保它可以通过将android:installLocation设置为internalOnly来获得意图.我的OnBoot类中有一个Log.Debug,确认它是否被调用.

我有两个设备,Android 2.2和Honeycomb.在Android 2.2上,它工作正常,但蜂窝...

  • 如果我使用eclipse的"运行"按钮在蜂窝平板电脑上安装应用程序,则在平板电脑启动时会调用onBoot.

  • 如果我在导出*.apk文件后在蜂窝平板电脑上安装应用程序,则永远不会调用onBoot.

  • 如果我在导出*.apk文件后在蜂窝平板电脑上安装应用程序,并在重新启动之前手动启动活动,则调用onBoot.

似乎应用程序需要至少启动一次其活动才能注册接收器......感觉不对,因为应用程序可能没有活动,而且Froyo不会那样工作......

android receiver bootcompleted

4
推荐指数
1
解决办法
2027
查看次数

广播BOOT_COMPLETED意图动作无法正常工作

我有一个接收器类侦听几个动作,但它无法捕获android.intent.action.BOOT_COMPLETED动作.我做错了什么?这是我的清单文件:

<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <!--<receiver android:name=".OtherReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
    </receiver>-->
    <receiver android:name="com.myApp.AppReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
             <action android:name="android.intent.action.PACKAGE_ADDED"/>
             <action android:name="com.myApp.wifitimer"/>
            <action android:name="android.intent.action.PACKAGE_REPLACED" />
            <data android:scheme="package" android:path="com.myApp" />
    </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

可以看出我在接收器中再次添加了权限,接收者的名字获得了该类的全名,如此答案所示.
这是广播接收器类:

@Override
public void onReceive(Context arg0, Intent arg1) {

    String action1 = arg1.getAction();

    if(action1.equals(Intent.ACTION_BOOT_COMPLETED)) {
        Log.d("receiver","action is: boot");
    }
    if(action1.equals("android.intent.action.PACKAGE_REPLACED")) {
        Log.d("receiver","action is: package");
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,接收器捕获android.intent.action.PACKAGE_REPLACED但是当我重新启动手机时,接收器无法捕获BOOT_COMPLETED.
然而,当我在评论.OtherReceiverMainfest文件,它可以抓住它!
这是这个类的代码:

public class OtherReceiver …
Run Code Online (Sandbox Code Playgroud)

android action broadcastreceiver bootcompleted

4
推荐指数
1
解决办法
1万
查看次数

报警管理员是否在重启后始终清除?

简单的问题:重启后AlarmManager 总是清除?在所有设备上重启后,即使用户在启动设备后很快启动设备,它是否会被清除?

我需要知道这一点,因为我重新创建了应用程序的警报OnBootReceiver,我想避免设置双重警报.

java android reboot alarmmanager bootcompleted

2
推荐指数
1
解决办法
1205
查看次数

BOOT COMPLETE无法在Android(Redmi)中运行

我目前正在开发一个包含Boot_Completed Broadcast接收器概念的应用程序.我已经在我的摩托罗拉Moto G手机中测试了这款应用.该应用程序运行正常,并显示Toast消息.但是当我在XIAOMI Redmi 1S手机中测试这个应用程序时,它不会显示Toast消息.

我已经看到很多类似于我的问题的问题(如 问题1,问题2等)......但我没有解决这个问题.

我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.demoapp"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="internalOnly" >
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.demoapp.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter> 
    </activity>
    <receiver android:name="com.example.demoapp.MyReceiver"
        android:enabled="true"
        android:exported="true" >
        <intent-filter >
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>
 </application>
 </manifest>
Run Code Online (Sandbox Code Playgroud)

MyReceiver.java

public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    if ("android.intent.action.BOOT_COMPLETED".equalsIgnoreCase(intent.getAction())) …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver bootcompleted

2
推荐指数
2
解决办法
4113
查看次数

仅在重新启动时启动活动

基本上我正在尝试创建一个包含重新启动设备的按钮的活动,并在重新启动后返回到相同的活动.

我知道这个问题可能会与其他人重新启动设备,但这不是这个问题的焦点,因为我可以让设备重新启动.

我已经让按钮重新启动设备,但是在重新启动完成后我可以让它启动活动的唯一方法是BOOT_COMPLETED在清单中注册广播接收器.麻烦的是这个方法每次设备启动时都会启动活动,这是不受欢迎的.当我在按钮上注册接收器时单击侦听器,它在重新启动后不会启动活动.

我想知道是否可能有一个额外的BOOT_COMPLETED,我可以用它来决定是否有意重新启动.

任何建议将不胜感激,提前谢谢!

java android android-intent bootcompleted android-activity

1
推荐指数
1
解决办法
107
查看次数

android:使用 Intent.ACTION_BOOT_COMPLETED 还是...?

在 AndroidManifest 文件中,我想在用户重新启动设备时捕获 BOOT_COMPLETED 事件。我正在添加此权限:

“使用权限 android:name="android.permission.RECEIVE_BOOT_COMPLETED”

我在 Stackoverflow 上看到了其他人使用的两个“意图过滤器”:

“Intent.ACTION_BOOT_COMPLETED”和

“android.intent.action.BOOT_COMPLETED”

这里的首选操作字符串是什么?请指教和解释。

android android-manifest bootcompleted

1
推荐指数
1
解决办法
1894
查看次数

boot_completed动作以编程方式注册而不是在清单中注册

我试图以编程方式注册接收器以进行操作android.intent.action.BOOT_COMPLETED,即让我接收一个名为BootReceiver 的接收器类,它扩展了BroadCastReceiver类.

所以在我的一个活动课中我编写了这段代码,

IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("android.intent.action.BOOT_COMPLETED");
        intentFilter.addAction("android.intent.action.PACKAGE_REPLACED");

        BootReceiver receiver = new BootReceiver();
        getApplicationContext().registerReceiver(receiver, intentFilter);
Run Code Online (Sandbox Code Playgroud)

我试图同时更新app以及boot_completed动作到同一个广播接收器.

所以我尝试的是,我通过注册上面的代码运行活动,然后重新启动设备.我没有得到任何回调BootReceiver onReceive()方法.

是否可以以编程方式为boot_completed操作声明接收器,或者是否有必要在清单文件中声明接收器.

实际上我的要求是以编程方式声明它.

提前致谢.

android intentfilter broadcastreceiver android-manifest bootcompleted

0
推荐指数
1
解决办法
1044
查看次数