Hello, I want to create a android module using titanium, this module is designed to retrieve info of apps which are already installed in android device.After I installed it when I tried to start it crashed, but there is no error during building progress. I searched solutions for several days but no proper answer was found, is anyone can fix my problem? thanks in advance
Appmanagemodule.java(module code)
package com.tommy.appmanage; import org.appcelerator.kroll.KrollModule; import org.appcelerator.kroll.annotations.Kroll; import org.appcelerator.titanium.TiApplication; import org.appcelerator.kroll.common.Log; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.content.pm.*; import android.graphics.drawable.Drawable; @Kroll.module(name="Appmanage", id="com.tommy.appmanage") public class AppmanageModule extends KrollModule { // Standard Debugging variables private static final String TAG = "AppmanageModule"; // You can define constants with @Kroll.constant, for example: // @Kroll.constant public static final String EXTERNAL_NAME = value; class PInfo { public String appname = ""; public String pkgname = ""; public String versionName = ""; public int versionCode = 0; public Drawable icon; } public AppmanageModule() // a constructor that receives the context as parameter { super(); } @Kroll.onAppCreate public static void onAppCreate(TiApplication app) { Log.d(TAG, "inside onAppCreate"); // put module init code that needs to run when the application is created } // Methods @Kroll.method public String example() { Log.d(TAG, "example called"); return "hello world"; } // Properties @Kroll.getProperty public String getExampleProp() { Log.d(TAG, "get example property"); return "hello world"; } @Kroll.setProperty public void setExampleProp(String value) { Log.d(TAG, "set example property: " + value); } @Kroll.method public List<PInfo> getInstalledApps(Context context) { List<PackageInfo> apps = new ArrayList<PackageInfo>(); PackageManager pManager = context.getPackageManager(); List<PInfo> applist = new ArrayList<PInfo>(); //get installed apps List<PackageInfo> paklist = pManager.getInstalledPackages(0); for (int i = 0; i < paklist.size(); i++) { PackageInfo pak = (PackageInfo) paklist.get(i); //third party apps if ((pak.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) { // customs applications apps.add(pak); } } for(int i=0;i<apps.size();i++) { PackageInfo pinfo = apps.get(i); PInfo shareItem = new PInfo(); //set Icon shareItem.icon = pManager.getApplicationIcon(pinfo.applicationInfo); //set Application Name shareItem.appname = pManager.getApplicationLabel(pinfo.applicationInfo).toString(); //set Package Name shareItem.pkgname = pinfo.applicationInfo.packageName; applist.add(shareItem); } return applist; } }app.js
var win = Ti.UI.createWindow({ backgroundColor : 'white' }); var label = Ti.UI.createLabel(); // TODO: write your module tests here var appmanage = require('com.tommy.appmanage'); Ti.API.info("module is => " + appmanage); Ti.API.info("app is => " + appmanage.getInstalledApps()); Ti.API.info("module exampleProp is => " + appmanage.exampleProp); appmanage.exampleProp = "This is a test value";