棉花糖不显示“更改默认拨号器应用”弹出窗口

时间:2018-11-20 09:14:13

标签: android

我想更改默认的拨号器应用程序并搜索一些文章。

但是在测试中,我遇到了问题,我的真实手机(Android 6.0)没有显示弹出窗口。
InRealPhoneTest.png

因此,我尝试在虚拟机(android 6.0)中进行测试,它可以完美运行。
InVirtualMachineTest.png

下面是我的代码:

Application.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.slb.test1">
<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"
        android:label="@string/app_name"
        android:directBootAware="true"
        android:excludeFromRecents="true"
        android:launchMode="singleInstance"
        android:process=":interim"
        android:resizeableActivity="true"
        android:screenOrientation="nosensor">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <action android:name="android.intent.action.DIAL"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <data android:scheme="tel"/>
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.DIAL"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>
</application>

MainApplication.java

public class MainActivity extends AppCompatActivity {
private static final int REQUEST_CODE_SET_DEFAULT_DIALER = 289;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
public void ViewClick(View view){
    try {
        Intent intent = new Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER);
        intent=intent.putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, getPackageName());
        startActivityForResult(intent, REQUEST_CODE_SET_DEFAULT_DIALER);
    }catch (Exception e){
        e.printStackTrace();
    }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    if(requestCode==REQUEST_CODE_SET_DEFAULT_DIALER){
        if(resultCode==RESULT_OK){
            Toast.makeText(this,"accept",Toast.LENGTH_SHORT).show();
        }else if(resultCode==RESULT_CANCELED){
            Toast.makeText(this,"cancel",Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(this,"unknown",Toast.LENGTH_SHORT).show();
        }
    }
}}

我的目的是通过InCallService服务类更改默认的应用程序拨号程序,我只是在测试弹出窗口。 当我在android 6.0的虚拟机中处理程序时,我可以选择在弹出窗口中接受还是取消。但是,当我在版本为android 6.0的真实电话中处理程序时,电话不会显示弹出窗口。

所以,我不明白为什么它不能在真正的手机上工作。你能告诉我一些吗?您的回答将不胜感激。

0 个答案:

没有答案