首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无来电时关闭手机对讲机

无来电时关闭手机对讲机
EN

Stack Overflow用户
提问于 2018-01-16 19:43:24
回答 1查看 141关注 0票数 0

我正在尝试检测是否有任何呼叫正在处理中,或者手机ringing.If不是,手机无线电应该切换off.Since我是第一次使用电话管理器。我不能纠正这个错误。错误是“无法解析'setRadioPower(?)‘。

我的MainActivity.java是:

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {
    private TelephonyManager tm;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final TelephonyManager telephonyManager =
                (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

        PhoneStateListener callStateListener = new PhoneStateListener() {
            public void onCallStateChanged(int state, String incomingNumber)
            {
                if(state==TelephonyManager.CALL_STATE_RINGING){
                    Toast.makeText(getApplicationContext(),"Phone Is Ringing",
                            Toast.LENGTH_LONG).show();
                }
                if(state==TelephonyManager.CALL_STATE_OFFHOOK){
                    Toast.makeText(getApplicationContext(),"Phone is Currently in A call",
                            Toast.LENGTH_LONG).show();
                }

                if(state==TelephonyManager.CALL_STATE_IDLE){
                     tm.setRadioPower(disabled);
                }
            }
        };
        telephonyManager.listen(callStateListener, PhoneStateListener.LISTEN_CALL_STATE);

    }

}

我的AndroidManifest.xml是:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.vk9621.radiocall">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
</manifest>

我的导入是:

代码语言:javascript
复制
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;

有人能告诉我如何纠正这个错误吗?

EN

回答 1

Stack Overflow用户

发布于 2020-08-17 20:03:26

在开发人员文档中找不到它的原因是它是隐藏的。但是,您可能总是在Android源代码中找到隐藏的方法。

代码参考:public boolean setRadioPower(boolean turnOn){}

如果您的手机没有rooted,或者您没有系统权限android.Manifest.permission.MODIFY_PHONE_STATE,您将无法访问此接口。

但是,如果您确实拥有这些权限,则可以使用以下代码轻松实现:

代码语言:javascript
复制
    ITelephony iTelephony = ITelephony.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_SERVICE));
    try {
        iTelephony.setRadioPower(true);
    } catch (RemoteException e) {
        e.printStackTrace();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48280472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档