2016-08-06 88 views
0

我只想通過啓動活動密碼使用密碼在android中通過撥號盤啓動活動

雖然有很多解決方案可用於這個問題,但他們都沒有爲我工作。看起來好像BroadcastReceiver不聽。

我使用Mi4i MIUI 7

這裏是我的代碼。請幫忙!!

MainActivity.java

package com.example.jatin.myapplication2; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 

public class MainActivity extends AppCompatActivity { 

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

} 

我甚至試過下面的註釋代碼,但沒有奏效。

MySecretCodeReceiver.java

package com.example.jatin.myapplication2; 

import android.content.BroadcastReceiver; 
import android.content.ComponentName; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.Toast; 

/** 
* Created by Jatin on 05-Aug-16. 
*/ 
public class MySecretCodeReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if(intent.getAction().equals("android.provider.Telephony.SECRET_CODE")) { 
     String uri = intent.getDataString(); 
     String sep[] = uri.split("://"); 
     if (sep[1].equalsIgnoreCase("1234")) 
     { 
      Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage("com.example.jatin.myapplication2.MainActivity"); 
      context.startActivity(launchIntent); 

     } 
     else if (sep[1].equalsIgnoreCase("5678")) { 
      Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage("net.one97.paytm"); 
      context.startActivity(launchIntent); 
     } 

//   Intent i = new Intent(context, MainActivity.class); 
//   i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
//   setResultData(null); 
//   context.startActivity(i); 

     } 
    } 

} 

我也試圖把機器人:主機= 「1234」 清單中,仍然沒有得到預期的效果

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?> 

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission> 
<receiver android:name="receivers.MySecretCodeReceiver" 
    android:enabled="true" 
    android:exported="true" 
    android:permission="android.permission.PROCESS_OUTGOING_CALLS"> 
    <intent-filter> 
     <action android:name="android.provider.Telephony.SECRET_CODE" /> 
     <data android:scheme="android_secret_code" /> 
    </intent-filter> 
</receiver> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 

    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

+0

我無法設法使其在HTC(Android 4.1.1)或三星(Android 6.0)上工作。我使用PROCESS_OUTGOING_CALLS和READ_PHONE_STATE權限。我的應用程序中有我的接收器,就像清單中的你。我還嘗試以編程方式註冊來自我的主要活動調用的服務的接收器。我讀了關於這個的6或7個主題,並且無法在BroadcastReceiver中記錄某些內容... – Alex

+0

同樣在這裏。我無法使它在任何三星設備上運行。 –

+0

@Alex whats ur應用的目標API級別? –

回答

0

得到它 ....

我們必須要註冊我們的MySecretCodeReceiver作爲< 接收機>的< 應用內>元素中的AndroidManifest.xml文件。

而且,它完成了。 :)

相關問題