Задать вопрос
  • Как программно сделать запрос на авторизацию через плагин для Pidgin?

    @gibbonchik Автор вопроса
    Нашел ответ, делается это так (лишнее вырезал, оставил только то, что касается ответа, тот кто работает с Libpurple хоть немного поймет что куда и откуда):

    static int autoauth(PurpleAccount *account,const char * remote_user)
    {
    	PurpleBuddy * buddy;
    	PurpleGroup*group;
    	group=purple_group_new(_("Buddies"));
    	if (group==NULL) purple_debug_info("autoauth", "Error group=null\n");
    	if (account==NULL) purple_debug_info("autoauth", "Error account=null\n");
    	purple_blist_add_group(group,NULL);
    	buddy=purple_buddy_new(account,remote_user,NULL);
            if (group!=NULL) {
    		purple_blist_add_buddy(buddy,NULL,group,(PurpleBlistNode*)group);
    	}
            purple_account_add_buddy(account,buddy);
    	return 1; //all accept
    }
    
    static gboolean plugin_load(PurplePlugin *plugin) {
    	static int handle;
    	purple_signal_connect(purple_accounts_get_handle(), "account-authorization-requested", &handle,
    				PURPLE_CALLBACK(autoauth),plugin);
    	purple_signal_connect(purple_accounts_get_handle(), "account-authorization-requested-with-message", &handle,
    				PURPLE_CALLBACK(autoauth),plugin);
        return TRUE;
    }
    Ответ написан
    Комментировать
  • Как добавить директорию в архив в debian?

    @gibbonchik Автор вопроса
    cd /root/bc/jarmod/javasoft && zip -r /root/bc/jarmod/myjar.jar dir
    Ответ написан
    Комментировать
  • Как динамически использовать jar?

    @gibbonchik Автор вопроса
    Нашел решение:
    File f = new File("/sdcard/MyFavorite/mygame.jar");
    DexClassLoader u = new DexClassLoader(f.toURI().toURL().toString(), getDir("libs", MODE_PRIVATE).getAbsolutePath(), null, ClassLoader.getSystemClassLoader());
    Class c = u.loadClass("com.example.myclass");
    Object object = c.newInstance();
    Class[] params = new Class[2];
    params[0] = Integer.TYPE;
    params[1] = Integer.TYPE;
    Method action = c.getMethod("Summ", params);
    Integer ret = (Integer) action.invoke(object, 12, 13);
    Log.d("DEBUG","method : " + action.getName() + ", return :" + ret);

    , но немного меняем сам .jar файл. вместо классов (com/example/myclass.class) необходимо положить один classes.dex файл.
    Создается он следующей командой:
    dx.bat --dex --verbose --output .\libgame\classes.dex .\libgame
    Ответ написан
    Комментировать