1. Check out our companion app, Forums for Android! Download from Google Play

This code works on emulator but doesnt work on device

Discussion in 'Application Development' started by Ganesh, Jan 4, 2010.

  1. Ganesh

    Ganesh Member
    Thread Starter
    15

    Dec 25, 2009
    18
    0
    15
    I am using API 4, this code works properly on emulator but doesnt work on device (HTC Hero). Can somebody help me plz??




    package com.SampleProject2;
    import android.app.Activity;
    import android.app.PendingIntent;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;
    import android.telephony.SmsManager;
    import android.telephony.TelephonyManager;
    import android.text.Layout;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.LinearLayout;
    import android.widget.Toast;
    import android.view.KeyEvent;
    public class SampleProject2 extends Activity {
    LinearLayout linearLayout;
    Layout flowlayout;
    EditText phoneNum;
    Button callBtn;
    TelephonyManager telephonyManager;


    public static final String TABLE = "events";
    // Columns public
    static final String ISMINUM = "isminum";
    public static final String TITLE = "title";
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    linearLayout = new LinearLayout(this);
    phoneNum = new EditText(this);
    phoneNum.setHint("Number Here");
    callBtn = new Button(this);
    callBtn.setText("Call..");
    phoneNum.setWidth(200);
    linearLayout.addView(phoneNum);
    linearLayout.addView(callBtn);
    setContentView(linearLayout);
    callBtn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
    MakeCall();
    sendSMS (""+phoneNum.getText(),"Sample Message");
    }
    });
    }
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_CALL) {
    MakeCall();
    }
    return false;
    }

    public void MakeCall() {
    phoneNum.setText("" + telephonyManager.getSubscriberId());


    }

    private void sendSMS( String phoneNumber, String message)
    {
    String SENT = "SMS_SENT";
    String DELIVERED = "SMS_DELIVERED";

    PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
    new Intent(SENT), 0);

    PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
    new Intent(DELIVERED), 0);
    registerReceiver(new BroadcastReceiver(){
    @Override
    public void onReceive(Context arg0, Intent arg1) {
    switch (getResultCode())
    {
    case Activity.RESULT_OK:
    Toast.makeText(getBaseContext(), "SMS sent",
    Toast.LENGTH_SHORT).show();
    break;
    case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
    Toast.makeText(getBaseContext(), "Generic failure",
    Toast.LENGTH_SHORT).show();
    break;
    case SmsManager.RESULT_ERROR_NO_SERVICE:
    Toast.makeText(getBaseContext(), "No service",
    Toast.LENGTH_SHORT).show();
    break;
    case SmsManager.RESULT_ERROR_NULL_PDU:
    Toast.makeText(getBaseContext(), "Null PDU",
    Toast.LENGTH_SHORT).show();
    break;
    case SmsManager.RESULT_ERROR_RADIO_OFF:
    Toast.makeText(getBaseContext(), "Radio off",
    Toast.LENGTH_SHORT).show();
    break;
    }
    }
    }, new IntentFilter(SENT));

    registerReceiver(new BroadcastReceiver(){
    @Override
    public void onReceive(Context arg0, Intent arg1) {
    switch (getResultCode())
    {
    case Activity.RESULT_OK:
    Toast.makeText(getBaseContext(), "SMS delivered",
    Toast.LENGTH_SHORT).show();
    break;
    case Activity.RESULT_CANCELED:
    Toast.makeText(getBaseContext(), "SMS not delivered",
    Toast.LENGTH_SHORT).show();
    break;
    }
    }
    }, new IntentFilter(DELIVERED));

    try
    {
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
    }
    catch (Exception e)
    {
    System.out.println(""+e.getStackTrace());
    }
    }


    }







    Thank you in advance
     

    Advertisement

  2. KeithG

    KeithG Well-Known Member
    46

    Nov 15, 2009
    103
    3
    46
    Check for permission errors with logcat on the device?

    Use the debugger and step through... its not much code :)
     
  3. Ganesh

    Ganesh Member
    Thread Starter
    15

    Dec 25, 2009
    18
    0
    15
    I am a newbee in android... I dont know how to check logcat and how to debug on device. I have added permisons in *.xml file the Name of permission is SEND_SMS. Then also it is not getting installed on device
     

Share This Page

Loading...