80,351
社区成员
发帖
与我相关
我的任务
分享
package com.mainroadlee.appdisplayer;
import java.util.ArrayList;
import java.util.List;
import com.mainroadlee.appdisplayer.R;
import dalvik.system.TemporaryDirectory;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class Main extends Activity {
private static final String TAG = "Main";
// Use ArrayList to store the installed non-system apps
ArrayList<AppInfo> appList = new ArrayList<AppInfo>();
private Button button;
// ListView app_listView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.testApps);
button.setOnClickListener(new ButtonClickListener());
List<PackageInfo> packages = getPackageManager()
.getInstalledPackages(0);
for (int i = 0; i < packages.size(); i++) {
PackageInfo packageInfo = packages.get(i);
AppInfo tmpInfo = new AppInfo();
tmpInfo.appName = packageInfo.applicationInfo.loadLabel(
getPackageManager()).toString();
tmpInfo.packageName = packageInfo.packageName;
tmpInfo.versionName = packageInfo.versionName;
tmpInfo.versionCode = packageInfo.versionCode;
tmpInfo.appIcon = packageInfo.applicationInfo
.loadIcon(getPackageManager());
appList.add(tmpInfo);
}
for (int i = 0; i < appList.size(); i++) {
appList.get(i).print();
}
// Populate data to listView
ListView app_listView = (ListView) findViewById(R.id.listview);
AppAdapter appAdapter = new AppAdapter(Main.this, appList);
// app_listView.setAdapter(appAdapter);
app_listView.setDividerHeight(5);
app_listView.setOnItemClickListener(new ListViewOnItemClickListener());
if (app_listView != null) {
app_listView.setAdapter(appAdapter);
}
}
/**
*
* @author shihx
*
*/
public class ListViewOnItemClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> av, View v, int position,
long arg3) {
// TODO Auto-generated method stub
AppInfo tmpInfo = appList.get(position);
Intent intent = new Intent();
Toast.makeText(Main.this, tmpInfo.getPackageName()+"."+tmpInfo.getAppName(), 1).show();
intent.setClassName(tmpInfo.getPackageName(),tmpInfo.getPackageName()+"."+tmpInfo.getAppName());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivitySafely(intent);
}
}
void startActivitySafely(Intent intent) {
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
Toast.makeText(this, R.string.activity_not_found,
Toast.LENGTH_SHORT).show();
} catch (SecurityException e) {
Toast.makeText(this, R.string.activity_not_found,
Toast.LENGTH_SHORT).show();
Log.i(TAG,
"Showbookmark does not have the permission to launch "
+ intent
+ ". Make sure to create a MAIN intent-filter for the corresponding activity "
+ "or use the exported attribute for this activity.",
e);
}
}
public class ButtonClickListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(Main.this, AppsShowActivity.class);
startActivity(intent);
}
}
public class AppAdapter extends BaseAdapter {
Context context;
ArrayList<AppInfo> dataList = new ArrayList<AppInfo>();
public AppAdapter(Context context, ArrayList<AppInfo> inputDataList) {
this.context = context;
dataList.clear();
for (int i = 0; i < inputDataList.size(); i++) {
dataList.add(inputDataList.get(i));
}
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return dataList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return dataList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
final AppInfo appUnit = dataList.get(position);
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.app_row, null);
v.setClickable(true);
}
TextView appName = (TextView) v.findViewById(R.id.appName);
ImageView appIcon = (ImageView) v.findViewById(R.id.icon);
if (appName != null)
appName.setText(appUnit.appName);
if (appIcon != null)
appIcon.setImageDrawable(appUnit.appIcon);
return v;
}
}
}
2、启动其他浏览器(当然该浏览器必须安装在机器上)
只要修改以下相应的packagename 和 主启动activity即可调用其他浏览器
intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");
uc浏览器":"com.uc.browser", "com.uc.browser.ActivityUpdate“
opera:"com.opera.mini.android", "com.opera.mini.android.Browser"
qq浏览器:"com.tencent.mtt", "com.tencent.mtt.MainActivity"
Intent intent = context.getPackageManager().getLaunchIntentForPackage("packagename");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);