一、有时候安装一个app,不想在桌面上显示图标,而是在其他地方调出这个程序。?要想在桌面不显示图标,只需注释掉APP入口Activity中的<category android:name="android.intent.category.LAUNCHER" />即可,或者把下面的LAUNCHER改成DEFAULT也是可以。
?
二、Android 系统里面温度提示框就是用这个形式,不显示图标,然后收到广播后显示activity。
? ? ?1、vendor\mediatek\proprietary\packages\apps\BatteryWarning\AndroidManifest.xml
?? ? ?2、vendor\mediatek\proprietary\packages\apps\BatteryWarning\src\com\mediatek\batterywarning\BatteryWarningReceiver.java
?
三、实例测试,一个app不显示图标,然后用两外一个app按下一个button去打开这个app。
? ? ? 1、不显示图标的app代码
? ? ? src\main\AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.giada.youtube">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Youtube">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
? ? ? src\main\java\com\giada\youtube\MainActivity.java
package com.giada.youtube;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
? ? ? 2、另外一个app的代码
? ? ? layout\activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn_open_app"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Open"
tools:layout_editor_absoluteX="196dp"
tools:layout_editor_absoluteY="186dp"
android:onClick="onClick"/>
</androidx.constraintlayout.widget.ConstraintLayout>
? ? ? com\giada\google\MainActivity.java
package com.giada.google;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_open_app:
/*
* Intent intent = getPackageManager().getLaunchIntentForPackage(
* "com.example.noicontest"); if (intent != null) { //
* startActivity(intent); } else {
* Toast.makeText(getApplicationContext(), "No this APP,Please install it firstly!",
* Toast.LENGTH_LONG).show(); }
*/
Intent intent = new Intent();
ComponentName cn = new ComponentName("com.giada.youtube","com.giada.youtube.MainActivity");
intent.setComponent(cn);
intent.setAction("android.intent.action.MAIN");
try {
startActivityForResult(intent, RESULT_OK);
} catch (Exception e) {
Toast.makeText(this, "No this APP,Please install it firstly!",Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
}
? ? ? 2、运行效果
四、参考文章
Android APP安装后不在桌面显示图标的应用场景举例和实现方法 - 郑毅 - 博客园
|