簡體   English   中英

以編程方式將我的應用程序添加到 android 中的自動啟動應用程序列表

[英]Add my app to AutoStart apps list in android programmatically

我希望我的應用程序在安裝后出現在自動啟動列表中。

我知道當我安裝像 (whatsapp) 這樣的應用程序時,它會自動進入自動啟動列表。 我希望我的應用程序是相同的

在此處輸入圖片說明

我嘗試了這個問題中的代碼如何自動啟動 Android 應用程序?

但不幸的是,沒有一個答案實際上使應用程序自動啟動。

不確定我是否做錯了什么

我需要應用程序自動啟動的原因只是為了從網絡服務獲取通知。 因為除非打開或自動啟動,否則應用程序不會收到通知

感謝您的幫助

謝謝

某些應用程序(例如 Whatsapp 和 Facebook)可能已被列入白名單,這就是它們啟用自動自動啟動選項的原因。

但是我已經為小米設備嘗試了以下代碼希望這可能會有所幫助!!

    String manufacturer = "xiaomi";
    if(manufacturer.equalsIgnoreCase(android.os.Build.MANUFACTURER)) {
        //this will open auto start screen where user can enable permission for your app
        Intent intent = new Intent();
        intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
        startActivity(intent);
    }

此屏幕/行為不是 Android 原生的,這意味着您顯示的屏幕來自自定義 rom,可能來自特定制造商。

就像您說的其他問題中的答案不起作用,但它們是在啟動/啟動時啟動應用程序的唯一本機方式。

檢查應用程序/自定義 rom 是否具有 API(要實現的特定廣播接收器,或某些 SDK...)。 您始終可以反編譯實現此行為的應用程序之一,以查看它們在此菜單中的顯示方式。

很少有流行的應用程序在后台運行而不在內存清理周期中被殺死(許多流行的 OEM 為電池/內存優化定制堆棧 ROM),因為它們被這些制造商“列入白名單”。 對於您的應用程序,您可以手動(通過設備的相應“設置”)或通過將用戶重定向到相應的設置頁面以將應用程序列入白名單來務實地將其列入白名單。

在此處查看詳細信息

我試過下面的代碼將我的應用程序列入白名單

try {
        final Intent intent = new Intent();
        String manufacturer = 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"));
            //intent.setComponent(new ComponentName("com.coloros.oppoguardelf", "com.coloros.powermanager.fuelgaue.PowerConsumptionActivity"));
        } else if ("vivo".equalsIgnoreCase(manufacturer)) {
            intent.setComponent(new ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity"));
        } else if ("huawei".equalsIgnoreCase(manufacturer)) {
            intent.setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity"));
        } else {
            // applySubmit(false);
            return;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM