瑞芯微Rockchip开发者社区
直播中

京五环以外

10年用户 3173经验值
擅长:EMC/EMI设计
私信 关注
[问答]

请问RK3288平台Android6.0系统怎样去修改默认Launcher呢

请问RK3288平台Android6.0系统怎样去修改默认Launcher呢?

回帖(1)

李瑜斌

2022-3-4 14:56:08
public class ResolverActivity extends Activity {

……//此处省略好多行

private static final String DEFAULT_HOME = "persist.sys.default.home";

……//此处省略好多行

protected void onCreate(Bundle savedInstanceState, Intent intent,

CharSequence title, int defaultTitleRes, Intent[] initialIntents,

ListrList, boolean alwaysUseOption) {

setTheme(R.style.Theme_DeviceDefault_Resolver);

super.onCreate(savedInstanceState);

……//此处省略好多行

setupDefaultLauncher(); //封装一个设置默认桌面的函数

……//此处省略好多行

}

……//此处省略好多行

private void setupDefaultLauncher() {

String first = "";

try{

first = SystemProperties.get(DEFAULT_HOME);

}catch(Exception e){

Log.w(TAG,"exception error get DEFAULT_HOME");

}

int position = mAdapter.getDefaultHomePosition("com.XXX.home");//在此处获取指定包名的Launcher的位置,mAdapter是ResolveListAdapter的引用

if (position == -1) {

if (DEBUG)

Log.w(TAG,"not find default Home");

return;

}

ResolveInfo ri = mAdapter.resolveInfoForPosition(position, true);

TargetInfo intent = mAdapter.targetInfoForPosition(position, true);

onTargetSelected(intent, false);

try{

SystemProperties.set(DEFAULT_HOME,DEFAULT_HOME);

}catch(Exception e){

Log.w(TAG,"exception error set DEFAULT_HOME");

}

startSelected(position, true, true);

dismiss();

}

public int getDefaultHomePosition(String packageName){

for (int i = 0; i < mDisplayList.size(); i++) {

ResolveInfo info = mDisplayList.get(i).mResolveInfo;

if (DEBUG)

Log.w(TAG,"getDefaultHomePosition " + info.activityInfo.packageName);

if (info.activityInfo.packageName.equals(packageName)) {

return i;

}

}

return -1;

}

……//此处省略好多行

}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分