Java 捕获来电号码 更新1:
我发现了问题!安装应用程序时,未向用户请求权限。我是手工做的,效果很好新问题,如何让应用程序在启动时请求权限 原文 我正试图捕捉来电号码,但没有用 没有出现错误,这就是问题所在,所以我必须错过一些细节 在stackoverflow上,有很多主题,但都非常陈旧,而且答案不起作用 AndroidManifest.xmlJava 捕获来电号码 更新1:,java,android,android-studio,Java,Android,Android Studio,我发现了问题!安装应用程序时,未向用户请求权限。我是手工做的,效果很好新问题,如何让应用程序在启动时请求权限 原文 我正试图捕捉来电号码,但没有用 没有出现错误,这就是问题所在,所以我必须错过一些细节 在stackoverflow上,有很多主题,但都非常陈旧,而且答案不起作用 AndroidManifest.xml 我遗漏了什么没有在祝酒词中显示数字的内容?我已经与这个问题斗争了一周,在阅读了您的条目后,我解决了这个问题,非常感谢。 它正在将此行添加到主要活动: ActivityCompat.r
我遗漏了什么没有在祝酒词中显示数字的内容?我已经与这个问题斗争了一周,在阅读了您的条目后,我解决了这个问题,非常感谢。 它正在将此行添加到主要活动:
ActivityCompat.requestPermissions(这个新字符串[]{Manifest.permission.READ\u PHONE\u STATE,Manifest.permission.READ\u CALL\u LOG},1)代码>您确定您拥有获取额外传入号码所需的所有权限吗@O95所需的权限不是我在AndroidManifest.xml中声明的权限?@O95我发现了问题!安装应用程序时,不会向用户请求权限。我是手工做的,效果很好。新问题,如何让应用程序在启动时请求权限?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="net.aaa.androidcall">
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.PHONE_STATE" />
<application
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".ServiceReceiver" >
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
</application>
</manifest>
package net.aaaa.androidcall;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.view.Gravity;
import android.widget.Toast;
public class ServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.PHONE_STATE")){
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
String Number = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
Toast toast = Toast.makeText(context, "Number: " +Number+ ", Status: "+ state,Toast.LENGTH_LONG);
toast.setGravity(Gravity.BOTTOM|Gravity.LEFT,3,0);
toast.show();
}
}
}