Чтение текстового файла с SD-карты - PullRequest
0 голосов
/ 11 сентября 2011

У меня есть приложение, которое отправляет SMS для проверки оставшихся МБ в моем пакете данных.У меня есть макет с кнопкой и текстовым представлением.Когда я нажимаю кнопку, я отправляю сообщение своему оператору телефона.Затем у меня есть приемник вещания, который прослушивает входящие сообщения и сохраняет тело сообщения в текстовый файл.Я хочу показать этот текст в моем текстовом виде, когда получу ответ от своего оператора.

Это мой код:

public class bonbon3 extends Activity 
{

    Button btnStanje;
    Context context=this;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main3);


        btnStanje = (Button) findViewById(R.id.provjeriStanje);

        btnStanje.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {   
                String phoneNo = "0977";
                String message = "stanje";                 

                sendSMS(phoneNo, message); 

                Toast.makeText(getBaseContext(), "Zahtjev za provjeru stanja paketa je poslan, odgovor očekuj uskoro!", Toast.LENGTH_SHORT).show();

                File root = Environment.getExternalStorageDirectory();
                File dir = new File (root.getAbsolutePath() + "/Bonbon info");
                dir.mkdirs();
                File f = new File(dir, "test.txt");

                StringBuilder text = new StringBuilder();

                try {
                    BufferedReader br = new BufferedReader(new FileReader(f));
                    String line;

                    while ((line = br.readLine()) != null) {
                        text.append(line);
                        text.append('\n');
                    }
                }
                catch (IOException e) {

                }

               TextView tv = (TextView)findViewById(R.id.textView2);
               tv.setText(text);


                }
        });
    }


    private void sendSMS(String phoneNumber, String message)
    {        
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(phoneNumber, null, message, null, null);        
    }
}

Теперь этот код я пытаюсь прочитать из файла,до получения SMS-сообщения, поэтому я знаю, что это неправильно, но я не знаю, как загрузить текст в textView после получения SMS-ответа?

Ответы [ 3 ]

1 голос
/ 11 сентября 2011

привет, я думаю эта ссылка будет очень полезна для вас

Чтение текстового файла с SDCard в Android так же, как чтение текстового файла в Java ..

0 голосов
/ 12 сентября 2011

Горан, я не могу ответить inline, но если вы перейдете по моей ссылке, там есть почти все, что вам нужно.

Я почти точно последовал этому примеру, и он сработал.

Выпросто нужно внедрить обработчик сообщений в вашу деятельность (вместо службы, как в примере) и отправить сообщение из службы (вместо получения его здесь), но за исключением этого, это точно то же самое.

Таким образом, в вашей деятельности у вас должно быть что-то вроде этого:

/**
 * Handler of incoming messages from clients.
 */
class IncomingHandler extends Handler {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case MSG_GOT_SMS:
                // Fill your text view here using the msg.obj (you put it there)
                break;
            default:
                super.handleMessage(msg);
        }
    }
}

В вашей службе (бит, который получает SMS) у вас должно быть что-то вроде:

public void sendText(String sms) {
    // Create and send a message to the service, using a supported 'what' value
    Message msg = Message.obtain(null, MyActivity.MSG_GOT_SMS,O, 0, sms);
    try {
        mService.send(msg);
    } catch (RemoteException e) {
        e.printStackTrace();
    }
}
0 голосов
/ 11 сентября 2011

Я думаю, вы бы предпочли установить обмен сообщениями между вашей активностью и вашим получателем трансляции (то есть это услуга, не так ли?).

У вас обязательно будет цикл, который будет пытаться прочитатьфайл непрерывно, пока он не будет там, где не чувствует себя хорошо.Не храните SMS в текстовом файле, отправляйте содержимое непосредственно из действия в службу с помощью системы обмена сообщениями.

Для обмена сообщениями между действиями и службами обратитесь к руководству по разработке приложений для Android, касающемуся связанных служб и особенно раздел о мессенджере (ваш сервис не нужно привязывать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...