android - 获取找不到符号 : method getSystemService from ant

标签 android ant

我刚开始使用 android,ant 给我以下错误:

-compile: java:44: cannot find symbol
[javac] symbol  : method getSystemService(java.lang.String)
[javac] AudioManager am = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
                                            ^

我不明白这个问题,因为我正在导入 android.media.AudioManager;

我的代码如下:

package com.example.findme;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
import android.media.AudioManager;

public class SMSReceiver extends BroadcastReceiver
{
public final static String EXTRA_MESSAGE = "com.example.RemoVol.MESSAGE";
public final static String SILENT_MESSAGE = "Your phone has been silenced";
public final static String VOLUME_MESSAGE = "Your phone volume is normal";

@Override   
public void onReceive(Context context, Intent intent)
{
//---get the SMS message passed in---
    Bundle bundle = intent.getExtras();
    SmsMessage msgs[] = null;
    String str ="";
    String testString="";   
    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]);
                str += "SMS from" + msgs[i].getOriginatingAddress();
                str += " :";
                str +=msgs[i].getMessageBody().toString();
                testString=msgs[i].getMessageBody().toString(); 
                str += "\n";
            }
    //---display the new SMS message---
    Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
        if(testString.equals("#silent"))
        {   
            intent.putExtra(EXTRA_MESSAGE, SILENT_MESSAGE);
            AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
            am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
        }   
        else if(testString.equals("#volume"))
        {   
        AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
        am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
        intent.putExtra(EXTRA_MESSAGE, VOLUME_MESSAGE);
        }
    }
}
}

我在我的 android 项目的根目录中使用命令“ant debug”进行编译。

我希望这不是愚蠢和显而易见的事情。如果我浪费了你的时间,请提前道歉。

感谢您审阅此内容。

最佳答案

您需要传入 BroadcastReciever 提供的上下文(您不能使用 this)

//---display the new SMS message---
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
if(testString.equals("#silent"))
{   
    intent.putExtra(EXTRA_MESSAGE, SILENT_MESSAGE);
    AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
}   
else if(testString.equals("#volume"))
{   
    AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
    intent.putExtra(EXTRA_MESSAGE, VOLUME_MESSAGE);
}

关于android - 获取找不到符号 : method getSystemService from ant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12555828/

相关文章:

android - 通常不需要子类化应用程序吗?

java - 将文件读入数组后android NULL值

android - shaperenderer 矩形上的 Libgdx 着色器

android - .Override 不同类的方法

java - 如何在 Android 项目中使用 ant 检测未使用的导入和变量?

Android Studio——将 Gradle 与文件的 'traditional' 排序一起使用

Javadoc 与 Ant

用于检测我的android应用程序用户是否在线的android代码

java - ProGuard 混淆 - java.lang.NoSuchMethodError : getPointer

android - 如何解决 Android 工具中的 javac 增量构建未检测到应导致重新编译的更改?