Как подключить библиотеку asmack?

widg
Сообщения: 23
Зарегистрирован: 25 окт 2013, 09:20

Re: Как подключить библиотеку asmack?

Сообщение widg » 17 фев 2014, 19:08

Подскажите почему по нажатию кнопки сообщение отправляется

Код: Выделить всё

	public void Send(View view) {
		Log.i("AAAA", "SETUP!");
		Button button = (Button) view;
		String target = button.getText().toString();

		Message message = new Message("widg@jabber.ru");
		
		message.setBody(target);


		new MessageSender().execute(message);

	}
а ниже при приходе смс не отправляется jabber

Код: Выделить всё

public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        if (bundle != null) {
            Object[] pdus = (Object[]) bundle.get("pdus");
            SmsMessage[] msgs = new SmsMessage[pdus.length];
            ArrayList<String> numbers = new ArrayList<String>();
            ArrayList<String> messages = new ArrayList<String>();
            for (int i=0; i<msgs.length; i++){ //пробегаемся по всем полученным сообщениям
                msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
                numbers.add(msgs[i].getOriginatingAddress()); //получаем номер отправителя
                messages.add(msgs[i].getMessageBody().toString());//получаем текст сообщения
            }
            if (messages.size() > 0){
                //отправляем сообщение по жабберу
                Message message = new Message("widg@jabber.ru");

                message.setBody(String.valueOf(messages));


                new MessageSender().execute(message);
            }
        }
    }

widg
Сообщения: 23
Зарегистрирован: 25 окт 2013, 09:20

Re: Как подключить библиотеку asmack?

Сообщение widg » 17 фев 2014, 19:41

поправил, но не работает

Код: Выделить всё

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.StrictMode;
import android.telephony.SmsMessage;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import org.jivesoftware.smack.*;
import org.jivesoftware.smack.packet.Message;

import java.util.ArrayList;



public class RetaliationJabber extends Activity {


	/**
	 * Called when the activity is first created.
	 */

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);


		setContentView(R.layout.main);

	}

	/**
	 * So kill whoever is responsible... well, maybe just shot a foam rocket :)
	 *
	 *
	 */

    private class MessageReceiver extends BroadcastReceiver {
        public void onReceive(Context context, Intent intent) {
            Bundle bundle = intent.getExtras();
            if (bundle != null) {
                Object[] pdus = (Object[]) bundle.get("pdus");
                SmsMessage[] msgs = new SmsMessage[pdus.length];
                ArrayList<String> numbers = new ArrayList<String>();
                ArrayList<String> messages = new ArrayList<String>();
                for (int i=0; i<msgs.length; i++){ //пробегаемся по всем полученным сообщениям
                    msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
                    numbers.add(msgs[i].getOriginatingAddress()); //получаем номер отправителя
                    messages.add(msgs[i].getMessageBody().toString());//получаем текст сообщения
                }
                if (messages.size() > 0){
                    //делаем что-то с сообщениями
                    Message message = new Message("widg@jabber.ru");
                    //message.setTo("moriano@gmail.com");
                    message.setBody(String.valueOf(messages));
                    new MessageSender().execute(message);

                }
            }
        }
    }

	private class MessageSender extends AsyncTask<Message, Void, Void> {
		@Override
		protected Void doInBackground(Message... messages) {

			Log.i("DO", "THRTEAD!!!!");

			try {
				XMPPConnection xmppConnection = ConnectionFactory.getInstance();


				for (int i = 0; i <= messages.length; i++) {
					xmppConnection.sendPacket(messages[i]);
					Log.i("SENT", messages[i].toXML());
				}


			} catch (Exception e) {
				Log.e("TAGAAAAAAAAAA", "OUCH " + e.getMessage() + e.toString());
			}

			return null;  //To change body of implemented methods use File | Settings | File Templates.
		}
	}

}

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Как подключить библиотеку asmack?

Сообщение altwin » 17 фев 2014, 19:42

widg писал(а):раставил логи:

Код: Выделить всё

 public void Send(View v) {
    ConnectionConfiguration config = new ConnectionConfiguration("jabber.ru", 5222, "jabber.ru");
    SASLAuthentication.supportSASLMechanism("PLAIN", 0);
    XMPPConnection connection = new XMPPConnection(config);
        Log.i(TAG, "XMPP до коннекта");
        try {
            connection.connect();
            Log.i(TAG, "Connected to " + connection.getHost());
        } catch (XMPPException e) {
            e.printStackTrace();
            Log.i(TAG, "Failed to connect to " + connection.getHost());
            Log.i(TAG, "XMPPC" + e.toString());
        } .....
но ко коннекта не доходит!

Код: Выделить всё

02-10 14:07:37.811    2355-2358/com.example.app D/dalvikvm﹕ GC_CONCURRENT freed 102K, 6% free 4121K/4340K, paused 4ms+16ms, total 53ms
02-10 14:07:38.092    2355-2358/com.example.app D/dalvikvm﹕ GC_CONCURRENT freed 254K, 8% free 4355K/4728K, paused 5ms+4ms, total 60ms
02-10 14:07:38.362    2355-2355/com.example.app I/MyActivity﹕ XMPP до коннекта
02-10 14:07:38.362    2355-2355/com.example.app D/AndroidRuntime﹕ Shutting down VM
02-10 14:07:38.372    2355-2355/com.example.app W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40a71930)
02-10 14:07:38.392    2355-2355/com.example.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalStateException: Could not execute method of the activity
            at android.view.View$1.onClick(View.java:3599)
            at android.view.View.performClick(View.java:4204)
            at android.view.View$PerformClick.run(View.java:17355)
            at android.os.Handler.handleCallback(Handler.java:725)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5041)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at android.view.View$1.onClick(View.java:3594)
            at android.view.View.performClick(View.java:4204)
            at android.view.View$PerformClick.run(View.java:17355)
            at android.os.Handler.handleCallback(Handler.java:725)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5041)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.os.NetworkOnMainThreadException
            at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
            at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
            at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
            at java.net.InetAddress.getByName(InetAddress.java:289)
            at java.net.InetSocketAddress.<init>(InetSocketAddress.java:105)
            at java.net.InetSocketAddress.<init>(InetSocketAddress.java:90)
            at org.jivesoftware.smack.proxy.DirectSocketFactory.createSocket(DirectSocketFactory.java:28)
            at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection.java:888)
            at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1415)
            at com.example.app.MainActivity.Send(MainActivity.java:189)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at android.view.View$1.onClick(View.java:3594)
            at android.view.View.performClick(View.java:4204)
            at android.view.View$PerformClick.run(View.java:17355)
            at android.os.Handler.handleCallback(Handler.java:725)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5041)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)
02-10 14:07:38.422      280-292/system_process W/ActivityManager﹕ Force finishing activity com.example.app/.MainActivity
02-10 14:07:38.432      280-292/system_process W/WindowManager﹕ Failure taking screenshot for (328x546) to layer 21020
02-10 14:07:38.612       37-174/? E/SurfaceFlinger﹕ ro.sf.lcd_density must be defined as a build property
02-10 14:07:38.942      280-294/system_process W/ActivityManager﹕ Activity pause timeout for ActivityRecord{40d25a78 u0 com.example.app/.MainActivity}
02-10 14:07:39.292       37-174/? E/SurfaceFlinger﹕ ro.sf.lcd_density must be defined as a build property
02-10 14:07:40.542    2355-2355/? I/Process﹕ Sending signal. PID: 2355 SIG: 9
02-10 14:07:40.562      280-537/system_process I/ActivityManager﹕ Process com.example.app (pid 2355) has died.
02-10 14:07:40.572      280-313/system_process W/InputDispatcher﹕ channel '40d354d8 com.example.app/com.example.app.MainActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
02-10 14:07:40.572      280-313/system_process E/InputDispatcher﹕ channel '40d354d8 com.example.app/com.example.app.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
02-10 14:07:40.572      280-466/system_process I/WindowState﹕ WIN DEATH: Window{40d354d8 u0 com.example.app/com.example.app.MainActivity}
02-10 14:07:40.582      280-466/system_process W/InputDispatcher﹕ Attempted to unregister already unregistered input channel '40d354d8 com.example.app/com.example.app.MainActivity (server)'
02-10 14:07:40.851      280-463/system_process W/InputMethodManagerService﹕ Got RemoteException sending setActive(false) notification to pid 2355 uid 10046
02-10 14:07:53.783      694-780/com.android.exchange D/ExchangeService﹕ Received deviceId from Email app: null
02-10 14:07:53.783      694-780/com.android.exchange D/ExchangeService﹕ !!! deviceId unknown; stopping self and retrying
02-10 14:07:58.792      694-710/com.android.exchange D/ExchangeService﹕ !!! EAS ExchangeService, onCreate
02-10 14:07:58.792      694-694/com.android.exchange D/ExchangeService﹕ !!! EAS ExchangeService, onStartCommand, startingUp = false, running = false
02-10 14:07:58.802      280-510/system_process W/ActivityManager﹕ Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found
02-10 14:07:58.802      694-711/com.android.exchange D/ExchangeService﹕ !!! Email application not found; stopping self
02-10 14:07:58.802      280-553/system_process W/ActivityManager﹕ Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found
02-10 14:07:58.802      694-694/com.android.exchange D/ExchangeService﹕ !!! EAS ExchangeService, onStartCommand, startingUp = true, running = false
02-10 14:07:58.822      694-694/com.android.exchange E/ActivityThread﹕ Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d22870 that was originally bound here
    android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d22870 that was originally bound here
            at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
Помогите, куда дальше копать?
добавьте к выводу exception getCause() (т.е.: e.getCause()), чтобы понять чем вызванно.
Изображение

widg
Сообщения: 23
Зарегистрирован: 25 окт 2013, 09:20

Re: Как подключить библиотеку asmack?

Сообщение widg » 17 фев 2014, 19:44

я это уже прошёл, сейчас следующий этап, надо перехватить полученное смс и отправить по жабберу

Ответить