Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查下载源以更改Android应用程序中的API URL_Java_Android_Ios_Flags_Ad Hoc Distribution - Fatal编程技术网

Java 检查下载源以更改Android应用程序中的API URL

Java 检查下载源以更改Android应用程序中的API URL,java,android,ios,flags,ad-hoc-distribution,Java,Android,Ios,Flags,Ad Hoc Distribution,我正在将一个iOS应用程序移植到Android,我需要更改API URL,具体取决于它是通过USB插入的、是作为.apk下载的还是通过Google play store安装的 这样我就可以使用我的本地开发API,一个登台API,然后显然是公共生产/发布API 我曾经检查应用程序是否通过Eclipse运行: if ( ( appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE ) != 0 ) { debug_value = "1"; }

我正在将一个iOS应用程序移植到Android,我需要更改API URL,具体取决于它是通过USB插入的、是作为.apk下载的还是通过Google play store安装的

这样我就可以使用我的本地开发API,一个登台API,然后显然是公共生产/发布API

我曾经检查应用程序是否通过Eclipse运行:

if ( ( appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE ) != 0 ) {
    debug_value = "1";
}
但我需要检查测试/发布之间的差异


在iOS中,我刚刚测试了
DEBUG
预处理器宏,并为
ADHOC
添加了一个宏。

如果*.apk和Google Play是同一版本,我相信你看不出它们之间的区别

另一方面,如果您使用Gradle,那么在名称中添加关键字是非常直接的,您可以稍后检查

这是我的应用程序中的一个示例:

    buildTypes {
        debug {
            versionNameSuffix = "-DEBUG"
        }
        release {
            signingConfig signingConfigs.release
        }
    }
这允许我们在应用程序上检查:

getPackageManager()
     .getPackageInfo(getPackageName(), 0)
     .versionName
     .contains("DEBUG");

我发现我可以使用
getInstallerPackageaName()
方法检查它是否是通过应用程序(如Google Play)安装的,或者它将返回
NULL

我使用过以下代码(这是Cordova应用程序):

我可能应该扩展它来专门检查商店名称,但我只是从这个开始,关于Google Play将返回的安装程序包名称似乎存在一些差异(请参阅下面列出的问题)

适用于
getInstallerPackageName()
的Android文档:

关于这方面的类似问题:

PackageManager packageManager = this.cordova.getActivity().getPackageManager();
String installer = packageManager.getInstallerPackageName( "com.myapp" );

if ( installer == null ) {
    // not installed via application (like Google Play)
} else {
    // installed via application
}