如何覆盖android中的权限管理器

时间:2015-10-10 09:28:17

标签: java android android-permissions autostart

我正在创建具有启动自动启动权限的应用。并且在那些不包含权限管理器的移动设备上工作正常。

我想开始我的应用程序,如Whats App和微信和其他应用程序。但许可经理阻止我的应用程序自动启动 - MI Redme Note 4g手机和三星手机。基本上,我想覆盖权限管理器设置,以便我的应用程序启动

目前我正在使用这些代码

 <receiver
     android:name=".BootComplete"
     android:enabled="true"
     android:exported="false" >
       <intent-filter>
       <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
  </receiver>

  <service android:name=".AutoStartUp" >
  </service>

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

请建议我让我的应用程序自动启动,如什么应用程序,微信,Youtube 和其他应用程序

先谢谢

1 个答案:

答案 0 :(得分:1)

你的代码在这里做的是:当设备启动时它将告诉广播接收器,现在广播接收器需要启动服务或应用程序或任何你想要启动的东西:

import android.app.ActivityManager;
import android.app.ActivityManager.RunningServiceInfo;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class MyBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent0) {



        if(! isMyServiceRunning(MyFirstService.class, context)){//test

        Intent startServiceIntent = new Intent(context, MyFirstService.class);
        context.startService(startServiceIntent);
        }




    }

    private boolean isMyServiceRunning(Class<?> serviceClass,Context context) {


        ActivityManager manager = (ActivityManager)context. getSystemService(Context.ACTIVITY_SERVICE);
        for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
            if (serviceClass.getName().equals(service.service.getClassName())) {
                return true;
            }
        }
        return false;
    }

}

此代码还会检查服务是否已在运行(由于某种原因),如果需要,您可以删除该部分。