2017-03-26 1 views
1

私はユーザーインターフェイス(サービスのみ)を含まないシステムアプリを開発しています。私は起動時にサービスを開始します。そして、私はfinish()メソッドを呼び出すことによって、ランチャー活動を直ちに終了します。 また、次のコードを使用してランチャー/アプリの引き出しからアイコンを削除しています。Androidアプリの引き出しに表示/表示されるシステムアプリ(非UI)の非表示/削除/回避方法

PackageManager packageManager = getPackageManager();

コンポーネント名componentName =新しいコンポーネント名(this.getApplicationContext()、MainActivity.class);

packageManager.setComponentEnabledSetting(componentName、PackageManager.COMPONENT_ENABLED_STATE_DISABLED、PackageManager.DONT_KILL_APP);

実装で問題はありません。しかし、私はアプリをアンインストールして新しくインストールしない限り、既にこのアプリをインストールしたデバイスにapkを再インストールできませんでした。

私の質問は、アプリ引き出しには特にシステムアプリ&に記載されていないAndroidデバイスのアプリがたくさんあります(一部のキーボードアプリはPlaystoreからダウンロードされています)。

私はこれを達成するための唯一の方法は不思議ですか?それとも、アプリケーションを非UIアプリとして宣言する他の方法がありますか?(Androidアプリが表示されないように)関連する活動のためのAndroidのマニフェストで

+0

android studioに組み込まれている[this](https://github.com/blackcj/AndroidCustomKeyboard)キーボードシステムアプリをご覧ください。それはあなたに良いアイデアを与える必要があります。 –

答えて

1

は、この方法を試してみてください。この行を完全に削除します。これはアプリの引き出しからあなたのアプリアイコンを隠すための最良のアイデアではないからです。あなたが言及したように、アプリの更新プロセス中にいくつかの問題を引き起こす可能性があります。

また
PackageManager packageManager = getPackageManager(); 

ComponentName componentName = new ComponentName(this.getApplicationContext(), MainActivity.class); 
    packageManager.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

、あなたの内側の ".action.MAIN" を持っていることを確認しますから(Mainifest.xml上の)主な活動目的のフィルタタグ

<category android:name="android.intent.category.LAUNCHER" /> 

を以下 "category.LAUNCHER" の行を削除メインアクティビティタグ

たとえば、このコードをメインアクティビティの現在のタグに置き換えることができます。マニフェスト

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.INFO" /> <!-- optional--> 
</intent-filter> 

この後、アプリに起動可能なアクティビティが含まれていないため、あなたのアプリはアプリの引き出しに表示されません。このようにして、あなたが言及した問題の再インストール/更新を避けることもできます。

1

はランチャーインテントフィルタを削除します。

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

    <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
+0

削除するとAndroidスタジオでコンパイルできませんでした。 –

+0

それはどんなエラーを投げますか? – aliaksei

+0

「デフォルトのアクティビティが見つかりません」と表示されてもコンパイルできませんでした –

関連する問題