Androidデスクトップアイコンの動的変更およびアプリケーションデスクトップアプリケーション名
3378 ワード
public class StartActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
final ComponentName iconCom = new ComponentName(StartActivity.this, "com.guoshikeji.driver95128.icon1");// +activity-alias name
final ComponentName defaultCom = new ComponentName(StartActivity.this, "com.guoshikeji.driver95128.default");
findViewById(R.id.bn_default).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {// icon1
enableComponent(iconCom);
disableComponent(defaultCom);
}
});
findViewById(R.id.bn_icon1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {// default
enableComponent(defaultCom);
disableComponent(iconCom);
}
});
}
// :COMPONENT_ENABLED_STATE_DISABLED
// :COMPONENT_ENABLED_STATE_ENABLED
// :COMPONENT_ENABLED_STATE_DEFAULT
private void enableComponent(ComponentName componentName) {
getPackageManager().setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0);
}
private void disableComponent(ComponentName componentName) {
getPackageManager().setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
// 0 DONT_KILL_APP 10 android10 10
}
}
以上の方式はandroid 10以下をテストして完璧にアイコンの機能を交換することができて、android 10のテストは依然としてプロセスを殺すことができて、私の個人の処理方式はandroid 10の携帯電話の上でアプリケーションを傍受してバックグラウンドに退いた時に交換を行って、アプリケーション内のオンラインバージョンのアップグレードに影響しません