2014-05-15 2 views
0

저는 안드로이드 개발에 초보자입니다. 모든 홈 화면은 Launcher의 작업 영역이라는 것을 알고 있습니다. 모든 응용 프로그램 아이콘의 위치 정보를 화면에 표시하고 싶기 때문에 이러한 화면 개체와 아이콘 정보의 목록을 가져올 수있는 방법이 있습니까?안드로이드에서 모든 홈 화면을 얻는 방법?

ADD : 내가 더 기대하는 것은 앱 아이콘과 화면 간의 관계입니다. 예를 들어 특정 앱 아이콘의 위치 정보 (화면 목록의 색인)가 표시됩니다.

+1

예 우리는 설치된 모든 응용 프로그램 이름 n 해당 아이콘 실행기 및 설치된 시간, 업데이트 시간 등의 다른 정보를 얻을 수 있습니다. 코드 plz을 원하면 알려주세요 .. –

+0

예, 저에게 보여 주시면 감사하겠습니다. 예제 코드. – vulgur

+0

예 우리 기기에 설치된 앱 목록을 얻을 수 있습니다.이 링크를 참조하십시오 http://stackoverflow.com/questions/6165023/get-list-of-installed-android-applications – Meenal

답변

0

먼저 지금 여기 ApplicationInfo 결과, packname, 콩에 대한 네 개의 목록을 만들이

public class Bean { 

String appName; 
String packName; 
Drawable icon; 
Date installTime; 
Date updateTime; 
int size; 
} 

같은 응용 프로그램 정보를 저장하기 위해 빈을 만들 수 있습니다.

public class AllApplications extends Activity { 

List<ApplicationInfo> AppList; 
private ArrayList<String>results; 
private ArrayList<String>packName; 
public ArrayList<Bean> list; 
ProgressDialog progress; 
ActivityManager am ; 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_all_applications); 


    try 
    { 
     new LoadApps().execute(); 
    } 
    catch (Exception e) 
    { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     Log.e("Exception",e.toString()); 
    } 

} 


class LoadApps extends AsyncTask<Void, Void,String> 
{ 

    @Override 
    protected void onPreExecute() { 
     progress= ProgressDialog.show(AllApplications.this,"Loading", 
       "Please Wait"); 
    } 
    @Override 
    protected String doInBackground(Void... params) 
    { 
     PackageManager pm = AllApplications.this.getPackageManager(); 
     list = new ArrayList<Bean>(); 
     AppList = new ArrayList<ApplicationInfo>(); 
     AppList = pm.getInstalledApplications(0); 
     Log.e("Package info",""+AppList); 
     results = new ArrayList<String>(); 
     packName = new ArrayList<String>(); 
     Log.e("Total package list",""+AppList.size()); 

     for(int i=0;i<AppList.size();i++) 
     { 
      Bean bean = new Bean(); 
      ApplicationInfo appInfo = AppList.get(i); 
      try 
      { 
       PackageInfo packInfo = pm.getPackageInfo(appInfo.packageName,0); 
       try 
       { 
        java.lang.reflect.Field field1 = PackageInfo.class.getField("firstInstallTime"); 
        long firstIns = field1.getLong(packInfo); 
        Date insDate = new Date(firstIns); 
        bean.installTime = insDate; 
        java.lang.reflect.Field field2 = PackageInfo.class.getField("lastUpdateTime"); 
        long lastUpdate = field2.getLong(packInfo); 
        Date upDate = new Date(lastUpdate); 
        bean.updateTime = upDate; 

       } 
       catch (NoSuchFieldException e) 
       { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IllegalArgumentException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IllegalAccessException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 


      } 
      catch (NameNotFoundException e) 
      { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      Log.e("ins package", "" + appInfo.packageName); 
      Log.e("ins package name", "" +appInfo.loadLabel(pm)); 
      Log.e("launched activity :", "" + pm.getLaunchIntentForPackage(appInfo.packageName)); 
      bean.appName = (String) appInfo.loadLabel(pm); 
      bean.packName = appInfo.packageName; 
      bean.icon = appInfo.loadIcon(getPackageManager()); 
      list.add(bean); 
      //    PackageInfo. this.firstInstallTime(a); 
     } 

     return null; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     // TODO Auto-generated method stub 
     super.onPostExecute(result); 

     progress.dismiss(); 

    } 

}} 

이 기능을 사용하면 도움이 될만한 정보를 얻으실 수 있습니다.

관련 문제