• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

android java выполнение комманд

micerec

Green Team
29.11.2019
38
1
BIT
0
Есть проблема - я начал делать мини-чат на java для android, и собственно нужно, чтобы приложение могло выступать в качестве сервера и клиента одновременно ( вариант центрального сервера мне кажется сложнее, да и у меня железа для этого нет). Пока обсуждается клиент-сервер в локальной сети, (я умею пробрасывать порты, а вот знакомые, которым я это делаю, нет) и хотелось бы использовать VPN. Android - 7.1.2 и выше, однако это корректируется. Само собой, вам понадобится код, просто напишите, какой, я пока не понимаю, что здесь нужно. Как бы xml файлы нужны, но и Activity.java тоже. В общем, пишите какой код нужен, я выложу
 

micerec

Green Team
29.11.2019
38
1
BIT
0
Проблема решена, есть другая: при компиляции в AS есть ошибка с firebase: class file for com.firebase.client.Firebase not found. Я попробовал добавить в импорты - в com.firebase даже поля client нет. Прикрепляю MainActivity.java.
 

micerec

Green Team
29.11.2019
38
1
BIT
0
Код:
package com.example.chat;

import android.content.Intent;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import com.firebase.ui.FirebaseListAdapter;
import com.firebase.ui.auth.AuthUI;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.android.material.snackbar.Snackbar;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.FirebaseDatabase;

public class MainActivity extends AppCompatActivity {
    private static int SIGN_IN_REQUEST_CODE = 1;
    RelativeLayout activity_main;
    Button button;

    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        activity_main = (RelativeLayout) findViewById(R.id.activity_main);
        button = (Button) findViewById(R.id.button2);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                EditText input = (EditText) findViewById(R.id.editText);
                FirebaseDatabase.getInstance().getReference().push().setValue(new Message(input.getText().toString(), FirebaseAuth.getInstance().getCurrentUser().getEmail()));
                input.setText("");
            }
        });

        if (FirebaseAuth.getInstance().getCurrentUser() == null) {
            startActivityForResult(AuthUI.getInstance().createSignInIntentBuilder().build(), SIGN_IN_REQUEST_CODE);
        }
        else {
            displayChat();
        }
    }

    private void displayChat() {

        ListView listmessages = (ListView) findViewById(R.id.listView);
        FirebaseListAdapter<Message> adapter = new FirebaseListAdapter<Message>(this, Message.class, R.layout.item, FirebaseDatabase.getInstance().getReference()) {


            @Override
            protected void populateView(View v, Message message) {

                TextView textmessage, author, timeMessage;
                textmessage = (TextView) findViewById(R.id.tvMessage);
                author = (TextView) findViewById(R.id.tvUser);
                timeMessage = (TextView) findViewById(R.id.tvTime);
                textmessage.setText(message.getTextMessage());
                author.setText(message.getAuthor());
                timeMessage.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)", message.getTimeMessage()));
            }
        };
        listmessages.setAdapter(adapter);
    }
    @Override
    protected void onActivityResult (int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == SIGN_IN_REQUEST_CODE) {
            if (resultCode == RESULT_OK) {
                Snackbar.make(activity_main, "Вход выполнен", Snackbar.LENGTH_SHORT).show();
                displayChat();
            }
            else {
                Snackbar.make(activity_main, "Вход не выполнен", Snackbar.LENGTH_SHORT).show();
                finish();
            }
        }
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == R.id.menu_signout) {
            AuthUI.getInstance().signOut(this).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    Snackbar.make(activity_main, "Выход выполнен.", Snackbar.LENGTH_SHORT).show();
                    finish();
                }
            });
        }
        return true;
    }
}
 

micerec

Green Team
29.11.2019
38
1
BIT
0
Вот
Код:
build.gradle
apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"

    defaultConfig {
        applicationId "com.example.chat"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.firebase:firebase-ui:0.1.0'
    implementation 'com.firebaseui:firebase-ui-auth:6.2.1'
    implementation 'com.firebaseui:firebase-ui:6.2.1'
    implementation 'com.firebaseui:firebase-ui-database:6.2.1'
    //noinspection GradleCompatible
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.google.firebase:firebase-auth:19.3.1'
    implementation 'com.google.firebase:firebase-database:19.3.0'
    implementation 'com.firebase:firebase-client:2.2.4'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
Извините, спойлеры делать не умею
 

Сергей Попов

Кодебай
30.12.2015
4 702
6 609
BIT
446
Проблема решена, есть другая
Настоятельно рекомендую создавать новую тему для каждого вопроса.
Извините, спойлеры делать не умею
1591728328559.png
 

micerec

Green Team
29.11.2019
38
1
BIT
0
Cпасибо, просто проблема все таки была по жаве, решил поменять вопрос. Надо было поставить отметку решено, а для этого нужен хотя бы 1 ответ как я понял. На будущее буду иметь в виду. Спасибо за совет.
 

Albert753258

New member
12.06.2020
2
0
BIT
0
Проблема решена, есть другая: при компиляции в AS есть ошибка с firebase: class file for com.firebase.client.Firebase not found. Я попробовал добавить в импорты - в com.firebase даже поля client нет. Прикрепляю MainActivity.java.
Проблема в том, что вы не подключили библиотеку firebase. Ее надо добавить в build.gradle (не всего проекта, а модуля). Я firebase никогда не пользовался, но нашел статью. Сайт очень хороший.
 

micerec

Green Team
29.11.2019
38
1
BIT
0
Проблема в том, что вы не подключили библиотеку firebase. Ее надо добавить в build.gradle (не всего проекта, а модуля). Я firebase никогда не пользовался, но нашел статью. Сайт очень хороший.
Там очень старые версии, и я попробовал добавить их - не работает.

Я так понял что ошибка не в отсутствии метода, а в отсутствии class файла или в конструкторе, но мне это ничего не дает. Я новичок в андроид, учусь.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!