getIntent in broadcast receiver undefined android

 多米音乐_34249295 发布于 2023-01-15 14:24

在我的应用程序中,我有一个未决的意图,当广播满足其要求时,广播接收器会收听.然后,这个广播接收器做我想做的事情但是我需要从一个活动添加额外的东西到另一个活动,我正在使用intent.putExtra这个.`

但是,在我的Receiver类中,getIntent()方法是未定义的.将它与待定意图一起使用时如何工作,因为它与我所有其他意图一起使用.

这是我的targetdistance.class :(设置广播和待定意图)

package com.example.drivetext;

import android.app.Activity;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.os.Bundle;

public class targetdistance extends Activity {

double finalc1;
double finalc2;
int finalsd;
String finalmessage;
String finalnumber;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.target);

    LocationManager locationManager;
    locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    String provider = LocationManager.GPS_PROVIDER;

    Intent intent = getIntent();
    String contactNo;
    contactNo = intent.getStringExtra("PhoneNumber");
    finalnumber = contactNo;
    String message;
    message = intent.getStringExtra("TextMessage");
    finalmessage = message;
    double coord1 = 0;
    coord1 = intent.getDoubleExtra("Coordinate1", coord1);
    finalc1 = coord1;
    double coord2 = 0;
    coord2 = intent.getDoubleExtra("Coordinate2", coord2);
    finalc2 = coord2;
    int seldis = 0;
    seldis = intent.getIntExtra("SelectedDistance", seldis);
    finalsd = seldis;

    LocationManager lm;
    double lat = finalc1;
    double long1 = finalc2;    //Defining Latitude & Longitude
    float radius=finalsd;                         //Defining Radius

           lm=(LocationManager) getSystemService(LOCATION_SERVICE);
           Intent i= new Intent();
           i.putExtra("PhoneNumber", contactNo);
           i.putExtra("TextMessage", message);
           PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), -1, i, 0);              
           lm.addProximityAlert(lat, long1, radius, -1, pi);
       }   
}

这是我的Receiver.class(广播接收器)

package com.example.drivetext;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.telephony.SmsManager;

public class Receiver extends BroadcastReceiver {

String finalnumber;
String finalmessage;

 @Override
 public void onReceive(Context arg0, Intent arg1) { 

     Intent intent4 = getIntent();
     String contactNo;
     contactNo = intent4.getStringExtra("PhoneNumber");
     finalnumber = contactNo;
     String message;
     message = intent4.getStringExtra("TextMessage");
     finalmessage = message;

  String k=LocationManager.KEY_PROXIMITY_ENTERING;
 // Key for determining whether user is leaving or entering 

  boolean state=arg1.getBooleanExtra(k, false);
  //Gives whether the user is entering or leaving in boolean form

  if(state){
   // Call the Notification Service or anything else that you would like to do here
   SmsManager smsManager = SmsManager.getDefault();
   String sendTo = finalnumber;
   String myMessage = finalmessage;
   smsManager.sendTextMessage(sendTo, null, myMessage, null, null);
   }

}
}

Raghunandan.. 5

但是,在我的Receiver类中,getIntent()方法是未定义的.

getIntent()是Activity类的方法.你可以使用arg1哪个是param @ public void onReceive(Context arg0, Intent arg1) {

String contactNo;
contactNo = arg1.getStringExtra("PhoneNumber");

您还需要发送广播 sendBroadcast(intent);

http://developer.android.com/reference/android/content/ContextWrapper.html#sendBroadcast(android.content.Intent)

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有