2016-08-06 8 views
0

秘密コードでアクティビティを開始したいだけです。秘密コードを使用してダイヤルパッドを介してアンドロイドで活動を開始

しかし、この問題には多数の解決策がありますが、どれも私のために働いていません。 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)またはSamsung(Android 6.0)で動作するように管理できません。私はPROCESS_OUTGOING_CALLSとREAD_PHONE_STATE権限を使います。私はマニフェストのようなアプリケーションで私の受信機を持っています。私はまた、私の主な活動から呼び出されたサービスからレシーバーをプログラムで登録しようとしました。私はこれについて6または7のテーマを読んで、BroadcastReceiverに何かを記録できませんでした。 – Alex

+0

同じです。私はそれが任意のサムスンのデバイス上で実行させることができません。 –

+0

@AlexさんのアプリのターゲットAPIレベルは? –

答えて

0

それを手に入れた....

を我々は< 受信機として私達のMySecretCodeReceiverを登録する必要があります>のAndroidManifest.xmlで< アプリケーション>要素内ファイル。

そして、その完了。 :)

関連する問題