簡體   English   中英

如何以編程方式刪除圖標(Android)

[英]How to remove icon programatically (Android)

通過刪除AndroidManifest.xml中的以下intent-filter,它可以在安裝后刪除該圖標。

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

但是我在開機時嘗試了以下操作,而不是刪除圖標,但是重啟后圖標仍然保留。 我已經添加了權限,並且此重新啟動接收器正常工作。

public class BootBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        PackageManager p = context.getApplicationContext().getPackageManager(); 
        ComponentName componentName = new ComponentName("com.example.removeicon","com.example.removeicon.LauncherActivity");
        p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

    }
}

或將Boot on on service放上,並且不刪除AndroidManifest.xml intent-filter,該服務將運行並運行。

package com.example.removeicon;
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        PackageManager p = getPackageManager();
        ComponentName componentName = new ComponentName("com.example.removeicon","com.example.removeicon.LauncherActivity");
        p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
        startService();
    }
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName("com.example.removeicon","com.example.removeicon.LauncherActivity");
p.setComponentEnabledSetting(componentName, 
    PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

請注意,直到下一次重新啟動,圖標才會消失。

試試下面的代碼,這個對我有用

PackageManager p = ctx.getPackageManager(); 
         p.setComponentEnabledSetting(((Activity)ctx).getComponentName(),
         PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

暫無
暫無

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

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