android中的广播接收机
我正在创建一个应用程序,它接收和解析SMS,然后将数据发送到另一个类 所以,为此,我创建了一个广播接收器,但问题是,在接收和解析SMS之后,我无法呼叫我必须发送数据的类 有人知道如何实现SMS接收器,并在收到SMS后解析它并将数据发送到另一个扩展到activity的类吗 接收人:android中的广播接收机,android,sms,Android,Sms,我正在创建一个应用程序,它接收和解析SMS,然后将数据发送到另一个类 所以,为此,我创建了一个广播接收器,但问题是,在接收和解析SMS之后,我无法呼叫我必须发送数据的类 有人知道如何实现SMS接收器,并在收到SMS后解析它并将数据发送到另一个扩展到activity的类吗 接收人: public class SmsReceiver extends BroadcastReceiver { int flag1=0,flag2=0,xyz=0; public String data =
public class SmsReceiver extends BroadcastReceiver
{
int flag1=0,flag2=0,xyz=0;
public String data = "",Lat="", Long="";
SmsMessage[] msgs = null;
Bundle bundle;
Context con;
@Override
public void onReceive(Context context, Intent intent)
{
con = context;
//---get the SMS message passed in---
bundle = intent.getExtras();
if (bundle != null)
{
//---retrieve the SMS message received---
/* Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++)
{
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
//data += "SMS from " + msgs[i].getOriginatingAddress();
//data += " :";
data += msgs[i].getMessageBody().toString();
//data += "\n";
}*/
data = "Lalazar Ave Hayatabad Pakistan;lat:33.978410 long:71.430398,T:2011-02-25\n19:37,speed:0";
//---display the new SMS message---
Toast.makeText(context, data, Toast.LENGTH_SHORT).show();
Exract_Langitude_And_Latitude();
}
}
public void Exract_Langitude_And_Latitude()
{
Toast.makeText(con, "Getting Latitude & Longitude", Toast.LENGTH_SHORT).show();
for ( int i = 0; i < data.length(); ++i )
{
char c = data.charAt(i);
String s = Character.toString(c);
///finding latitude
if (s.equals(";"))
{
Toast.makeText(con, "Getting Latitude", Toast.LENGTH_SHORT).show();
flag1=1;
String str="";
str = data;
for (int j= i+5;j<str.length();j++)
{
char ch = str.charAt(j);
String l = Character.toString(ch);
Lat+=l;
int k = j+6;
char ch1 = str.charAt(k);
String m = Character.toString(ch1);
if (m.equals(":"))
{
xyz = k;
break;
}
}
Toast.makeText(con, "Latitude = "+ Lat, Toast.LENGTH_SHORT).show();
}
///finding longitude
if (s.equals(":") && i == xyz )
{
Toast.makeText(con, "Getting Longitude", Toast.LENGTH_SHORT).show();
flag2=1;
//System.out.println("found at i = "+i);
String str="";
str = data;
for (int j = i+1;j<str.length();j++)
{
char ch = str.charAt(j);
String l = Character.toString(ch);
Long+=l;
int k = j+1;
char ch1 = str.charAt(k);
String m = Character.toString(ch1);
if (m.equals(","))
break;
}
Toast.makeText(con, "Longitude = " + Long, Toast.LENGTH_SHORT).show();
}
if (flag1==1 && flag2==1)
{
Toast.makeText(con, "Forget You", Toast.LENGTH_SHORT).show();
// Intent serviceIntent = new Intent().setClassName(con, Post.class.getName());
//con.startService(serviceIntent);
//con.startActivity(serviceIntent);
/* Intent in = new Intent(SmsReceiver.this,Post.class);
in.startActivity();*/
break;
}
}///end of main for loop
}
}
穆达萨
假设您打算从BroadcastReceiver
启动smsMessaging
,则需要执行以下操作:
Intent i = new Intent(con, smsMessaging.class);
con.startActivity(i);
如果您需要将任何信息发送到SMS信息活动
。在调用startActivity(i)
之前,可以使用i.putExtra()
您还必须确保已将
smsMessaging活动
添加到AndroidManifest.xml中为什么不能调用该类?你能告诉我们你尝试在哪里开始新活动的代码吗?你能告诉我如何在这里发布代码吗?因为我是新来的,不知道你会想编辑你的原始问题并添加它,如果你的格式不太正确,我可以编辑你的帖子并修改格式。谢谢:)我已经在上面发布了,现在有什么问题吗?没有,它不起作用,这是我评论的:(它不起作用,显示问题)“方法开始(意图)未定义SmsReceiver类型的“createmethod startActivity(intent)”仍然是相同的错误SMSReceiverah类型的方法startActivity(intent)未定义!请尝试con.startActivity(i);
抱歉><忘记您在广播接收器中
是否有logcat输出?它可能正在启动新活动,然后立即崩溃。
Intent i = new Intent(con, smsMessaging.class);
con.startActivity(i);