안 드 로 이 드 는 Launcher 선택 을 꺼 내지 않 고 기본 Launcher 가 필요 합 니 다.
http://blog.csdn.net/jia4525036/article/details/18036765
http://blog.sina.com.cn/s/blog_4ad8d46c01019zq4.html
항목 의 수요 가 변경 되 었 기 때문에, 여기 서 보류 한 후에 편리 하 게 사용 할 수 있 습 니 다.
frameworks / base / core / java / com / android / internal / app / Resolver Activity. java 에서 수정
필요 에 따라 기본 Launcher 를 설정 합 니 다.
private void setDefaultLauncher(String defPackageName,String defClassName) {
if ((defPackageName != null && defPackageName.trim().length() > 1) && (defClassName != null && defClassName.trim().length() > 0)) {
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.MAIN");
filter.addCategory("android.intent.category.HOME");
filter.addCategory("android.intent.category.DEFAULT");
Intent intent=new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
List list = new ArrayList();
list = getPackageManager().queryIntentActivities(intent, 0);
final int N = list.size();
ComponentName[] set = new ComponentName[N];
int bestMatch = 0;
for (int i=0; i bestMatch) bestMatch = r.match;
}
ComponentName preActivity = new ComponentName(defPackageName, defClassName);
getPackageManager().addPreferredActivity(filter, bestMatch, set,preActivity);
}
}
onCreate 방법 에 호출 추가
protected void onCreate(Bundle savedInstanceState) {
//++++++++++++
boolean firstBoot = (Settings.System.getInt(getApplication().getContentResolver(),
Settings.System.DEFAULT_HOME_SETTING_CHANGED, 0) == 0);
if(firstBoot){
String defPackageName = "com.panasonic.india.flexuihome";
String defClassName = "com.panasonic.india.flexuihome.Launcher";
setDefaultLauncher(defPackageName,defClassName);
android.util.Log.i("deflauncher : ","deflauncher : PackageName = "+
defPackageName+" ClassName = "+defClassName);
Intent defIntent = new Intent();
defIntent.setClassName(defPackageName, defClassName);
defIntent.setAction("android.intent.action.MAIN");
defIntent.addCategory("android.intent.category.HOME");
defIntent.addCategory("android.intent.category.DEFAULT");
startActivity(defIntent);
Settings.System.putInt(getApplication().getContentResolver(),
Settings.System.DEFAULT_HOME_SETTING_CHANGED,1);
this.finish();
}
//++++++++++++
// Use a specialized prompt when we're handling the 'Home' app startActivity()
final int titleResource;
final Intent intent = makeMyIntent();
final Set categories = intent.getCategories();
if (Intent.ACTION_MAIN.equals(intent.getAction())
&& categories != null
&& categories.size() == 1
&& categories.contains(Intent.CATEGORY_HOME)) {
titleResource = com.android.internal.R.string.whichHomeApplication;
} else {
titleResource = com.android.internal.R.string.whichApplication;
}
onCreate(savedInstanceState, intent, getResources().getText(titleResource),
null, null, true);
}
DEFAULT_HOME_SETTING_CHANGED 설정
core / java / android / provider / settings. java 의 public static final class System extends NameValueTable {} 에 추가
public static final String DEFAULT_HOME_SETTING_CHANGED = "default_home_setting_changed";
packages / SettingsProvider / res / values / defaults. xml 에 추가
0
packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
private void loadSystem Settings (SQLiteDatabase db) {} 에 추가
loadIntegerSetting(stmt, Settings.System.DEFAULT_HOME_SETTING_CHANGED, R.integer.default_launcher_value);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.